android尽量避免使用高位图导致内存溢出

MrLee2015-3-12 1939

如何有效的使用位图,避免OOM,Android Training说了很明白了,主要有四点:
1、有效的利用大图片
根据实际应用情况,加载位图,不要浪费。比如,在一个100*100的ImageView,完全加载一个1000*1000的位图,这就真的很浪费了。
应该根据实际大小需求,计算出inSampleSize再去Decode位图,这样很省内存。
2、在非UI线程处理位图
这个大家都懂,不多说。
3、使用缓存
利用LruCache和DiskLruCache,两者结合使用,就像多级缓存一样。在实际使用中,根据需要计算出缓存空间大小,同事避免类似横竖屏切换,界面重新初始化,导致缓存失效。
4、有效管理位图内存
这个需要对不同的系统版本采用不同的处理方法。2.3.3以下系统,bitmap的数据和对象是储存在两个不同的地方,我们需要自己调用recycle进行回收。3.0以上可以reused位图内存。画了一个图,希望读者更好理解。

18102634-c3e308e9e31344ecb8bdf336c17dd7c8

本文链接:https://www.it72.com/1369.htm

推荐阅读
最新回复 (0)
    返回