参考郭霖的文章
点击打开链接
写了下郭霖的三级缓存加载图片的照片墙之后打算封装个三级缓存加载图片以便以后开发使用。
通过简单的封装了LruCache内存缓存 + DiskLruCache硬盘缓存 + HttpUrl网络请求来实现三级缓存。
该封装适合ListView,GirdView等ViewGroup这类的容器,并且在对应的ImageView中用对应图片的Url作为Tag,以防止在异步加载图片使用产生图片位置错乱。
使用方法:
1.新建实例:构造函数:ImageLoadUtil(Context context, String cacheFileName, T viewGroup)
cacheFileName:缓存的目录的名字
viewGroup: 父容器,ListView,Girdview等。
2.获取图片并设置到对应的view:方法:getBitmapForUtil(ImageView imageView, String imageUrl)
imageView:带Url作为Tag的ImageView
imageUrl:图片下载地址
取消所有正在下载或等待下载的任务:void cancelAllTasks()
将缓存记录同步到journal文件中:void fluchCache()
源码地址:工具下载