展会信息港展会大全

android开发listView加载几百张图片不出现OOM的方法
来源:互联网   发布日期:2015-12-04 16:38:36   浏览:3596次  

导读:这两天搞了个小开源项目拿出来跟大家分享一下,主要就是解决怎样能够在listView中加载大量图片并生成Thumbnail尽量避免出现OOM的 error,现在做的有了一定的雏形了拿出来一块讨论下,看看大家有什么意见想法可以 ...

这两天搞了个小开源项目拿出来跟大家分享一下,主要就是解决怎样能够在listView中加载大量图片并生成Thumbnail尽量避免出现OOM的 error,现在做的有了一定的雏形了拿出来一块讨论下,看看大家有什么意见想法可以提升的。

刚开始做这个东西的时候大家都说用softReference因为这个会在内存吃紧的时候主动释放掉自己占用的内存,防止出现oom,所以我就很高兴的屁颠屁颠的用了这个作为缓冲bitmap的容器,开始效果还不错担当图片数大于50左右的时候会出问题了就,出现各种问题,刷新延迟,错乱等等,之后发现可能是这个softreference的原因,当内存消耗比较大的时候会自动销毁部分之前已经缓存过的bitmap所以决定不用这个了。但是这样又会带来另一个问题那就是当图片大于五百张的时候会出现oom的问题,前提是你得做好用完的bitmap的释放工作才能到五百,不然会更少的图片引起oom,三百二百不知道。这下我就在找能够较好时限内存管理的bitmap的方法,于是乎bitmapfactory中的各种方法,等比缩小option等等,时能达到一定的解决oom的问题,但是如果用户就是要显示等比得bitmap那么就不能满足要求了,哎又是一顿瞎翻之后找到了一个叫做universalimageloader的github的开源控件用了一下结果还不错,所以就用这个吧,具体的项目进度和源码请大家到git上自己下载吧

赞助本站

人工智能实验室

相关热词: OOM listView android

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港