随笔分类 -  Android

摘要:在编程中有时候需要对图片做特殊的处理,比如将图片做出黑白的,或者老照片的效果,有时候还要对图片进行变换,以拉伸,扭曲等等。这些效果在android中有很好的支持,通过颜色矩阵(ColorMatrix)和坐标变换矩阵(Matrix)可以完美的做出上面的所说的效果。下面将分别介绍这两个矩阵的用法和相关的函数。颜色矩阵android中可以通过颜色矩阵(ColorMatrix类)方面的操作颜色,颜色矩阵是一个5x4 的矩阵(如图1.1)可以用来方面的修改图片中RGBA各分量的值,颜色矩阵以一维数组的方式存储如下:[ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o 阅读全文
posted @ 2012-12-08 16:42 OYK 阅读(636) 评论(0) 推荐(0) 编辑
摘要:在Android中实用LRU+软引用(弱引用)的方法来缓存图片,可以减少内存溢出的情况。实现思路:在把图片保存到LRU集合中的时候,同时保存在一个弱引用的集合之中,如果此元素被LRU算法删除,可能垃圾回收器还并没有回收,可以通过弱引用的集合获取到此引用。publicLinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder);initialCapacity 初始容量loadFactor 加载因子,一般是 0.75faccessOrder false 基于插入顺序 true 基于访问顺序(get一个元素后,这个 阅读全文
posted @ 2012-12-04 18:23 OYK 阅读(2243) 评论(0) 推荐(0) 编辑
摘要:Afinal 是一个android的 orm 和 ioc 框架。而且封装了android中的httpClient,使其更加简单易用。使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位置错位等问题。Afinal的宗旨是简洁,快速。约定大于配置的方式。尽量一行代码完成所有事情。目前Afinal主要有四大模块:1、FinalDB模块:android中的orm框架,一行代码就可以进行增删改查。支持一对多,多对一等查询。2、FinalActivity模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findV 阅读全文
posted @ 2012-12-04 15:53 OYK 阅读(1369) 评论(0) 推荐(0) 编辑
摘要:基本思路是:对每一条曲线的首末点虚连一条直线,求所有点与直线的距离,并找出最大距离值dmax,用dmax与限差D相比:若dmax<D,这条曲线上的中间点全部舍去;若dmax≥D,保留dmax对应的坐标点,并以该点为界,把曲线分为两部分,对这两部分重复使用该方法。/// <summary>/// Uses the Douglas Peucker algorithm to reduce the number of points./// </summary>/// <param name="Points">The points.</par 阅读全文
posted @ 2012-12-03 11:22 OYK 阅读(745) 评论(0) 推荐(0) 编辑
摘要:BitmapFactory.decodeResource和BitmapFactory.decodeStream,相信对于有过android app开发经验的人来说都是很熟悉了。关于Bitmap的OOM问题,网上也有很多文章进行了分析,不少文章都说为避免OOM,最好使用BitmapFactory.decodeStream,但是具体说明原因的我至今没有找到,所以趁着10.1期间有空,就调查了一番,希望结果对大家能有帮助。 先来张时序图,看了这张图,估计很多问题都不用说明了:下面做些说明:1,函数externalBytesAvailable(...)的内存计算方法详细请参见文章《Android .. 阅读全文
posted @ 2012-12-03 01:04 OYK 阅读(1868) 评论(0) 推荐(0) 编辑
摘要:在编写Android程序的时候,我们总是难免会碰到OOM的错误,那么这个错误究竟是怎么来的呢?我们先来看一下这段异常信息:08-14 05:15:04.764: ERROR/dalvikvm-heap(264): 3528000-byte external allocation too large for this process.08-14 05:15:04.764: ERROR/(264): VM won’t let us allocate 3528000 bytes08-14 05:15:04.764: DEBUG/skia(264): — decoder->decode retu 阅读全文
posted @ 2012-12-03 00:11 OYK 阅读(876) 评论(0) 推荐(0) 编辑
摘要:转自:http://debuglog.iteye.com/blog/1413699Android2.3.3EclipseVersion:3.7.0ConsoleEclipse下的Android虚拟机,运行应用,正常的控制台信息Console一般如下:Java代码 [2012-02-1715:01:28-tmall]------------------------------[2012-02-1715:01:28-tmall]AndroidLaunch![2012-02-1715:01:28-tmall]adbisrunningnormally.[2012-02-1715:01:28-tmall 阅读全文
posted @ 2012-07-06 15:38 OYK 阅读(7536) 评论(0) 推荐(0) 编辑
摘要:本文转自 http://blog.csdn.net/Android_Tutor/article/details/5890835Android系统中XML解析方案的选择DOM解析器是通过将XML文档解析成树状模型并 将其放入内存来完成解析工作的,而后对文档的操作都是在这个树状模型上完成的。这个在内存中的文档树将是文档实际大小的几倍。这样做的好处是结构清除、操 作方便,而带来的麻烦就是极其耗费系统资源。而SAX正好克服了DOM的缺点,分析能够立即开始,而不是等待所有的数据被处理。而且,由于应用程序只是在 读取数据时检查数据,因此不需要将数据存储在内存中,这对于大型文档来说是个巨大的优点。事实上,应 阅读全文
posted @ 2012-04-23 11:43 OYK 编辑
摘要:定义Android Layout(XML)时,有四个比较特别的标签是非常重要的,其中有三个是与资源复用有关,分别是<viewStub/>, <requestFocus />, <merge /> and<include />。可是以往我们所接触的案例或者官方文档的例子都没有着重去介绍这些标签的重要性。1.)<viewStub/>: 此标签可以使UI在特殊情况下,直观效果类似于设置View的不可见性,但是其更大的(R)意义在于被这个标签所包裹的Views在默认状态下不会占用任 何内存空间。viewStub通过include从外部导入Vi 阅读全文
posted @ 2012-04-06 10:22 OYK 阅读(1030) 评论(0) 推荐(0) 编辑
摘要:px:是屏幕的像素点in:英寸mm:毫米pt:磅,1/72 英寸dp:一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1pxdip:等同于dpsp:同dp相似,但还会根据用户的字体大小偏好来缩放。建议使用sp作为文本的单位,其它用dip然后是我自己的理解:Android的屏幕密度是以160为基准的,屏幕密度(densityDpi)为160时, 是将一英寸分为160份, 每一份是1像素. 如果屏幕密度(densityDpi)为240时, 是将一英寸分为240份, 每一份是1像素. 1英寸/160(机器x) = 1英寸/240(机器y) = 1px打个比方, 一个三英寸的显示 阅读全文
posted @ 2012-04-05 10:59 OYK 阅读(759) 评论(0) 推荐(1) 编辑
摘要:如果你的游戏不吃CPU,用View就比较好,符合标准Android操作方式,由系统决定刷新surface的时机。 但如果很不幸的,你做不到不让你的程序吃CPU,你就只好使用SurfaceView来强制刷新surface了,不然系统的UI进程很可能抢不过你那些吃CPU的线程。 当然其实不止这两种方法来刷新Surface的,这两种只是纯Java应用比较常见的方法。 SurfaceView和View最本质的区别在于,surfaceView是在一个新起的单独线程中可以重新绘制画面而View必须在UI的主线程中更新画面。 那么在UI的主线程中更新画面 可能会引发问题,比如你更新画面的时间过长,那... 阅读全文
posted @ 2012-03-20 18:01 OYK 阅读(1738) 评论(0) 推荐(0) 编辑
摘要:WAP和NET的区别: (1) 为什么会有两个接入点? 在国际上,通常只有一种GPRS接入方式,为什么在中国会有CMWAP和CMNET两兄弟呢?(彩信之所以单独配置接入点是因为彩信服务需要连接专用的服务器,在这里不作探讨。) 其实,CMWAP 和 CMNET 只是中国移动人为划分的两个GPRS接入方式。前者是为手机WAP上网而设立的,后者则主要是为PC、笔记本电脑、PDA等利用GPRS上网服务。它们在 实现方式上并没有任何差别,但因为定位不同,所以和CMNET相比,CMWAP便有了部分限制,资费上也存在差别。 (2) 什么是WAP? WAP只是一种GPRS应用模式,它与GRPS... 阅读全文
posted @ 2012-03-17 15:12 OYK 阅读(5882) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.cnblogs.com/feisky/archive/2011/08/02/1644482.html关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式:1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画;2. Frame Animation:顺序播放事先做好的图像,是一种画面转换动画。动画类型下面先来看看Android提供的动画类型。Android的animation由四种类型组成在XML文件中:alpha 渐变透明度动画效果scale 阅读全文
posted @ 2012-02-27 17:17 OYK 阅读(437) 评论(0) 推荐(0) 编辑
摘要:如果动画中的图像变换的比较有规律时,可能采用自动生图中间图像的方式来生成动画,例如图像的移动、旋转、缩放等。补间动画的优点是可以节省空间。一、移动补间动画可以通过配置动画文件(xml文件)或java代码来实现补间动画的移动效果。补间动画文件需要放在res\anim目录下。假设在res\anim目录下有一个动画文件test.xml,该文件内容如下:<translatexmlns:android="http://schemas.android.com/apk/res/android"android:interpolator="@android:anim/dece 阅读全文
posted @ 2012-02-27 13:20 OYK 阅读(2027) 评论(0) 推荐(0) 编辑
摘要:wifi定位是iphone升级到1.1.3之后新加的应用服务,拿到机器后开始试用一下wifi定位。在美国达拉斯,定位按钮被按下后,旋转了大约2秒钟,所在的街道就立刻闪现在屏幕中央了。难怪乔布斯也说:“It's really cool”,这个功能确实神奇呀。以前用过GSM定位,那个误差能大到数公里,而wifi定位出的中心点距离我所在也就是50米。随后我到网上查了一下关于这个技术的文章,了解到了下面的情况。做这项技术是由一家成立于2003年叫Skyhook Wireless(http://www.skyhookwireless.com/)的公司。在SkyHook主页上可以下载一个叫Loki 阅读全文
posted @ 2012-02-17 15:14 OYK 阅读(1336) 评论(1) 推荐(1) 编辑
摘要:不管是GPS定位技术还是利用无线传感器网络或其他定位手段进行定位都有其局限性。未来室内定位技术的趋势是卫星导航技术与无线定位技术相结合,将GPS 定位技术与无线定位技术有机结合,发挥各自的优长,则既可以提供较好的精度和响应速度,又可以覆盖较广的范围,实现无缝的、精确的定位…… 随着数据业务和多媒体业务的快速增加,人们对定位与导航的需求日益增大,尤其在复杂的室内环境,如机场大厅、展厅、仓库、超市、图书馆、地下停车场、矿井 等环境中,常常需要确定移动终端或其持有者、设施与物品在室内的位置信息。但是受定位时间、定位精度以及复杂室内环境等条件的限制,比较完善的定位技术目 前还无法很好地利用。因此... 阅读全文
posted @ 2012-02-17 15:11 OYK 阅读(2048) 评论(0) 推荐(0) 编辑
摘要:错误日志:11-03 12:36:54.812: ERROR/AndroidRuntime(5084): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget内存溢出主要由以下几种情况引起:1.数据库的cursor没有关闭。2.构造adapter没有使用缓存contentview。3.调用registerReceiver后未调用unregisterReceiver()。4.未关闭InputStream/OutputStream。5.Bitmap使用后未调用recycle()。6.Context泄漏。7.Stat 阅读全文
posted @ 2012-02-07 10:25 OYK 阅读(1072) 评论(0) 推荐(0) 编辑
摘要:本文参考:http://developer.android.com/guide/topics/resources/animation-resource.htmlhttp://developer.android.com/guide/topics/graphics/animation.html在Android中,Animation分为Tween Animation和Frame Animation两类。一、Tween Animation 对一张图片进行一系列的变换(包括缩放、透明度、移动、旋转)。对应的类是Animation; 资源访问方式: In Java:R.anim.filename... 阅读全文
posted @ 2012-02-07 10:15 OYK 阅读(491) 评论(0) 推荐(0) 编辑
摘要:1、设置窗口格式为半透明getWindow().setFormat(PixelFormat.TRANSLUCENT);2、Android中在非UI线程里更新View的不同方法:* Activity.runOnUiThread( Runnable )* View.post( Runnable )* View.postDelayed( Runnable, long )* Hanlder3、全屏显示窗口requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(WindowManager.LayoutParams.FLAG_F 阅读全文
posted @ 2012-02-07 10:00 OYK 阅读(442) 评论(0) 推荐(0) 编辑
摘要:onInterceptTouchEvent:onInterceptTouchEvent 是在ViewGroup里面定义的。Android中的layout布局类一般都是继承此类的。onInterceptTouchEvent是用于拦截手 势事件的,每个手势事件都会先调用onInterceptTouchEvent。onTouchEvent:onTouchEvent同样也是在view中定义的一个方法。处理传递到view 的手势事件。手势事件类型包括ACTION_DOWN,ACTION_MOVE,ACTION_UP,ACTION_CANCEL等事件。其 中Layout里的onInterceptTouch 阅读全文
posted @ 2012-02-06 17:46 OYK 阅读(7424) 评论(1) 推荐(1) 编辑