频道栏目
首页 > 资讯 > 其他 > 正文

图片加载,避免OOM

17-04-21        来源:[db:作者]  
收藏   我要投稿

1、展现高分辨率图片时,先将图片进行压缩。

为了避免OOM异常,最好在解析每张图片的时候都先检查一下图片的大小,大小知道了,我们就可以决定是把整张图片加载到内存中还是加载一个压缩版的图片到内存中。

以下几个因素是我们需要考虑的:

预估一下加载整张图片所需占用的内存。

为了加载这一张图片你所愿意提供多少内存。

用于展示这张图片的控件的实际大小。

当前设备的屏幕尺寸和分辨率。

2、加载一大推图片时,使用图片缓存技术 最核心的类是LruCache。非常适合用来缓存图片,它的主要算法原理是把最近使用的对象用强引用存储在 LinkedHashMap 中,并且把最近最少使用的对象在缓存值达到预设定值之前从内存中移除。

1.获取到可用内存的最大值,使用内存超出这个值会引起OutOfMemory异常。

2.使用了系统分配给应用程序的八分之一内存来作为缓存大小

3.当向 ImageView 中加载一张图片时,首先会在 LruCache 的缓存中进行检查。如果找到了相应的键值,则会立刻更新ImageView ,否则开启一个后台线程来加载这张图片。

4.BitmapWorkerTask 还要把新加载的图片的键值对放到缓存中。

相关TAG标签
上一篇:Android Studio格式化(Format)代码快捷键
下一篇:UniversalImageLoader的用法总结
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站