Android-避免出现bitmap内存限制OUT OF MEMORY的一种方法
来源:互联网 发布:网络剧有毒在线观看 编辑:程序博客网 时间:2024/04/30 00:12
在编写Android程序的时候,我们总是难免会碰到OOM(OUT OF MEMORY)的错误,那么这个错误究竟是怎么来的呢,可以先看一下这篇文章ANDROID BITMAP内存限制OOM,OUT OF MEMORY。
这里,我使用Gallery来举例,在模拟器中,不会出现OOM错误,但是,一旦把程序运行到真机里,图片文件一多,必然会出现OOM,我们通过做一些额外的处理来避免。
1.创建一个图片缓存对象HashMap dataCache,integer对应Adapter中的位置position,我们只用缓存处在显示中的图片,对于之外的位置,如果dataCache中有对应的图片,我们需要进行回收内存。在这个例子中,Adapter对象的getView方法首先判断该位置是否有缓存的bitmap,如果没有,则解码图片(bitmapDecoder.getPhotoItem,BitmapDecoder类见后面)并返回bitmap对象,设置dataCache 在该位置上的bitmap缓存以便之后使用;若是该位置存在缓存,则直接取出来使用,避免了再一次调用底层的解码图像需要的内存开销。有时为了提高 Gallery的更新速度,我们还可以预存储一些位置上的bitmap,比如存储显示区域位置外向上3个向下3个位置的bitmap,这样上或下滚动 Gallery时可以加快getView的获取。
BitmapDecoder.class
2.由于Gallery控件的特点,总有一个item处于当前选择状态,我们利用此时进行dataCache中额外不用的bitmap的清理,来释放内存。
经过这些额外的操作,有效的避免了OOM的问题。
原文链接:http://ck19860613.javaeye.com/blog/842732
- Android-避免出现bitmap内存限制OUT OF MEMORY的一种方法
- Android-避免出现bitmap内存限制OUT OF MEMORY的一种方法-缓存
- Android-避免出现bitmap内存限制OUT OF MEMORY的一种方法
- Android-避免出现bitmap内存限制OUT OF MEMORY的一种方法
- Android-避免出现bitmap内存限制OUT OF MEMORY的一种方法
- Android-避免出现bitmap内存限制OUT OF MEMORY的一种方法
- Android-避免出现bitmap内存限制OUT OF MEMORY的一种方法
- 避免出现bitmap内存限制OUT OF MEMORY的一种方法
- 避免出现bitmap内存限制OUT OF MEMORY的一种方法
- 避免出现bitmap内存限制OUT OF MEMORY的一种方法
- 避免出现bitmap内存限制OUT OF MEMORY的一种方法
- 避免出现bitmap内存限制OUT OF MEMORY的一种方法
- 避免出现bitmap内存限制OUT OF MEMORY的一种方法
- 避免bitmap内存OUT OF MEMORY
- ANDROID BITMAP内存限制OOM,OUT OF MEMORY
- Android Bitmap内存限制OOM Out Of Memory
- [转帖]Android Bitmap内存限制OOM,Out Of Memory
- BITMAP内存限制OOM,OUT OF MEMORY。
- 再见2011,你好,2012。
- Wifi模块的工作方式与主要功能
- JS只能输入正整数,禁止粘贴,禁止右键
- oracle数据字典小结
- 超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
- Android-避免出现bitmap内存限制OUT OF MEMORY的一种方法
- 日期控件
- Android Out Of Memory(OOM) 的详细研究
- Ubuntu 下面真机调试遇见的问题
- GridView 加排序序号(正序,倒序)
- C#常用开发包 CommonLibrary.NET
- 红帽Linux.5.5企业版本在VM虚拟机里中文乱码的解决方法
- 超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大[转]
- Chrome team 发起了浏览器兼容性检测工具开源项目