Android ImageLoader图片缓存框框架修改缓存使用的KEY.
来源:互联网 发布:淘宝写论文有靠谱的吗 编辑:程序博客网 时间:2024/04/26 09:15
因为最近在工作中 使用阿里云的OSS文件存储服务器时,文件访问使用的private,生成的访问路径是App内部根据阿里云的accessKeyId,bucketName,accessKeySecret和endPoint,以及连接有效时间动态生成的,连接在一段时间后会变更,而且在list列表中,每次getView都会重新生成新的路径这样对于,重新从网络下载图片这样,图片缓存也形同虚设(因为imageloader默认使用,图片URL作为key,但是这里使用的路径每次访问都会更改)。
那么接下来进入正题。
目前关于ImageLoader的文章到处都是,关于这个的我就不再多做介绍。
然后接下的内容也不全都是我自己写的。都是看了别人的文章之后写的。所以。。。所以什么来的,忘了。。忘了就算了吧。我都不介意。你们也别介意了。
ImageLoader是单例的
public static ImageLoader getInstance() {
if (instance == null) {
synchronized (ImageLoader.class) {
if (instance == null) {
instance = new ImageLoader();
}
}
}
return instance;
}
所有我们要在他初始化的时候进行修改:
ImageLoaderConfiguration config = new ImageLoaderConfiguration
.Builder(context)
.memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽
.discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null) // Can slow ImageLoader, use it carefully (Better don't use it)/设置缓存的详细信息,最好不要设置这个
.threadPoolSize(3)//线程池内加载的数量
.threadPriority(Thread.NORM_PRIORITY - 2)
.denyCacheImageMultipleSizesInMemory()
.memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024)) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现
.memoryCacheSize(2 * 1024 * 1024)
.discCacheSize(50 * 1024 * 1024)
.discCacheFileNameGenerator(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密
.tasksProcessingOrder(QueueProcessingType.LIFO)
.discCacheFileCount(100) //缓存的文件数量
.discCache(new UnlimitedDiscCache(cacheDir))//自定义缓存路径
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
.imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
.writeDebugLogs() // Remove for release app
.build();//开始构建
imageLoader.init(config); //----------------------->这里就是初始化的地方。
我们要修改的地方就是这个 discCacheFileNameGenerator(new Md5FileNameGenerator())
重写 Md5FileNameGenerator()
discCacheFileNameGenerator(new Md5FileNameGenerator() {
@Override
public String generate(String imageUri) {
String imageName = imageUri;
try {
imageName = imageUri.split("OSSAccessKeyId=")[0];
} catch (Exception e) {
// e.printStackTrace();
}
return super.generate(imageName);
}
})//
一目了然,就是重写了他的public String generate(String imageUri) 方法,将返回返回值改成了自己想要的那部分不会改变的值,而动态生成的部分直接忽略了。
有没有看懂呀。应该都能看懂吧。毕竟这么简单。
这是我的第一篇技术文档。写这个的目的其实也是为了自己以后查询使用。不为别的。就因为以前我讲自己写的一些demo挡在U盘里面,时间一久,自己都忘了那个是那个的。写在这里。还可以有文字 可以查考。当然如果能够帮到别人就更好了。毕竟我是一个乐于分享的好少年
- Android ImageLoader图片缓存框框架修改缓存使用的KEY.
- 使用imageloader加载图片时 修改缓存的使用的key
- 图片缓存ImageLoader的使用
- Android 图片缓存框架ImageLoader
- 设置ImageLoader的图片缓存
- android imageLoader 使用缓存策略
- 图片缓存库Picasso和ImageLoader的使用
- Android 主流网络图片加载缓存库框架Universal-ImageLoader的使用
- Android加载网络图片缓存处理库的使用-Universal-ImageLoader
- android图片缓存实现(自定义ImageLoader)
- android ImageLoader 缓存下载显示网络图片
- 使用ImageLoader缓存网络图片问题
- 使用ImageLoader缓存图片到SDCARD
- ImageLoader缓存图片
- ImageLoader图片缓存
- ImageLoader缓存图片
- 关于ImageLoader图片缓存
- ImageLoader图片缓存
- mysql状态查看 QPS/TPS/缓存命中率查看
- 接口和抽象类有什么区别
- log4j
- deb 包 转换为rpm包。。。
- 抠图-grabCut算法+hog检测
- Android ImageLoader图片缓存框框架修改缓存使用的KEY.
- Convert.ToInt32、int.Parse的区别
- 关于xshell无法连接虚拟机中linux
- Android蓝牙开发教程(二)——连接蓝牙设备
- LeetCode笔记:371. Sum of Two Integers
- 关于android:configChanges的属性
- 使用VLC搭建基于UDP的流媒体服务器
- 计算机网络
- PLSQL-Developer数据库连接工具使用方法