高效使用位图
2013-05-18 10:34 HalZhang 阅读(1990) 评论(2) 编辑 收藏 举报如何有效的使用位图,避免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位图内存。
画了一个图,希望读者更好理解。
说什么都是虚的,注意实际开发中灵活运用吧。
最近Google I/O 2013 很多干货,整理了一个播放列表:http://t.cn/zTsgFb3 youtube上的,需要穿越,大家懂的。
欢迎大家交流,转载请注明出处!
参考:http://developer.android.com/training/displaying-bitmaps/index.html
------END-----
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步