您的位置:首页 > 移动开发 > Android开发

Android图片管理组件(双缓存+异步加载)

2014-08-19 11:23 465 查看
转自:http://www.oschina.net/code/snippet_219356_18887?p=3#comments

ImageManager2这个类具有异步从网络下载图片,从sd读取本地图片,内存缓存,硬盘缓存,图片使用动画渐现等功能,已经将其应用在包含大量图片的应用中一年多,没有出现oom

Android程序常常会内存溢出,网上也有很多解决方案,如软引用,手动调用recycle等等。但经过我们实践发现这些方案,都没能起到很好的效果,我们的应用依然会出现很多oom,尤其我们的应用包含大量的图片。android3.0之后软引用基本已经失效,因为虚拟机只要碰到软引用就回收,所以带不来任何性能的提升。

我这里的解决方案是HandlerThread(异步加载)+LruCache(内存缓存)+DiskLruCache(硬盘缓存)。

作为程序员,我也不多说,直接和大家共享我的代码,用代码交流更方便些。

源码demo地址:https://github.com/yueyueniao2012/multiimagechooser

标签:
<无>


代码片段(1)
[全屏查看所有代码]

1. [文件]
ImageManager2.java ~ 13KB
下载(468)

?
举报

开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»



发表评论
回到顶部

网友评论(44)




41楼:木法沙王 发表于 2014-04-10 17:26
回复此评论

//如果本地url即读取sd相册图片,则直接读取,不用经过DiskCache
if (url.toLowerCase().contains("dcim")

建议把dcim改为mnt, 这样别的路经下图片也能加载了




42楼:迷途的小羔羊 发表于 2014-05-02 16:14
回复此评论

我他妈的非常感谢你,真心的




43楼:wgggfiy 发表于 2014-06-05 10:56
回复此评论

请问这个缓存何时可以清空呢??我担心内存和磁盘会慢慢越积越大




44楼:巴顿将军 发表于 2014-07-19 18:16
回复此评论

什么东西呀,我跑不起来,看不到什么效果呢

<

1

2

3

回到顶部
回到评论列表

开源从代码分享开始
分享代码

roc2013的其他代码

SlidingDrawer源码(0评/938阅,1年前)

自定义Android滑动式菜单SlidingMenu(不依赖任何第三方库)(35评/18351阅,1年前)

Android自定义控件:DragSortListview(11评/4356阅,1年前)

android自定相册(7评/1391阅,1年前)

仿大众点评下拉菜单实现(3评/2888阅,1年前)

全部(6)...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: