解决setImageResource()内存溢出
来源:互联网 发布:数据库基础知识总结 编辑:程序博客网 时间:2024/06/16 00:07
尽量不要直接使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过Java层的createBitmap来完成的,需要消耗更多内存。
因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的source,decodeStream最大的秘密在于其直接调用JNI>>nativeDecodeAsset()来完成decode,无需再使用java层的createBitmap,从而节省了java层的空间。
如果在读取时加上图片的Config参数,可以跟有效减少加载的内存,从而跟有效阻止抛out of Memory异常
另外,decodeStream直接拿的图片来读取字节码了, 不会根据机器的各种分辨率来自动适应, 使用了decodeStream之后,需要在hdpi和mdpi,ldpi中配置相应的图片资源, 否则在不同分辨率机器上都是同样大小(像素点数量),显示出来的大小就不对了。
通过以下代码就可以避免OOM,然后将返回的bitmap设置给view
阅读全文
0 0
- 解决setImageResource()内存溢出
- 解决大屏手机上setImageResource()内存溢出
- 解决大屏手机上setImageResource()内存溢出
- tomcat内存溢出解决
- 解决tomcat内存溢出
- 解决MAVEN内存溢出
- Jira 内存溢出解决
- 解决tomcat内存溢出
- 解决tomcat内存溢出
- 解决内存溢出
- 解决MAVEN内存溢出
- 解决内存溢出
- fusioncharts内存溢出解决
- myeclipse 解决内存溢出
- JAVA内存溢出解决
- tomcat内存溢出解决
- 解决Webservice内存溢出
- 解决Tomcat内存溢出
- QNX system architecture 11
- 关于HTTP协议,一篇就够了
- 剑指offer
- 微信小程序 从服务器获取数据(十四)
- QNX system architecture 16
- 解决setImageResource()内存溢出
- Petri Net Simulation UVA
- HTML精确定位
- js实现文本内容光标定位,获取光标位置
- cmd更换utf_8编程格式
- 传统数组
- 【笨鸟先飞】Java重新学习日记8---泛型的深入学习
- Java数组
- 【宏观】短期中的经济:IS-LM 模型