Glide-自定义缓存
来源:互联网 发布:爱上学软件下载 编辑:程序博客网 时间:2024/05/01 15:13
前言:
在前面的文章中,我们介绍了如何对Glide进行默认配置的基础知识,现在我们就来介绍如何配置自定义缓存
Glide 系列目录
- 1.Glide-入门教程
- 2.Glide-占位图以及加载动画
- 3.Glide-加载本地图片
- 4.Glide-加载Gif
- 5.Glide-绑定生命周期
- 6.Glide-内存缓存与磁盘缓存
- 7.Glide-通过Modules定制Glide
- 8.Glide-自定义缓存
- 9.Glide-图片的压缩
- 10.Glide-图片预处理(圆角,高斯模糊等)
- 11.Glide-图片的剪裁(ScaleType)
- 12.Glide-源码详解
1.如何使用GlideModule
首先我们要对Glide进行默认配置,需要了解如何使用GlideModule,前面文章已经做了详细介绍了,这边就不再介绍了
如何使用GlideModule
http://blog.csdn.net/yulyu/article/details/55194237
前面还介绍了关于Glide缓存的基础知识,有兴趣的也可以看看
Glide缓存基础知识
http://blog.csdn.net/yulyu/article/details/55096713
2.自定义内存缓存
通过调用builder的setXXX方法就可以自定义内存缓存的大小了
(MemoryCach以及BitmapPool都与内存缓存有关)
public class XiayuGlideModule implements GlideModule { @Override public void applyOptions(Context context, GlideBuilder builder) { //配置内存缓存大小 10MB builder.setMemoryCache(new LruResourceCache(10*1024*1024)); //配置图片池大小 20MB builder.setBitmapPool(new LruBitmapPool(20*1024*1024)); } @Override public void registerComponents(Context context, Glide glide) { }}
但是内存缓存的大小数值其实不应该是随便配置的,Glide的内部的默认值是通过一系列的计算获取的,比如说判断手机是否高配置手机等(有兴趣的可以去看他的源码,或者等待本系列后面的源码分析)
这样有个取巧的办法,就是获取Glide默认的设置,然后在这个设置的基础上进行修改
public class XiayuGlideModule implements GlideModule { @Override public void applyOptions(Context context, GlideBuilder builder) { //获取内存计算器 MemorySizeCalculator calculator = new MemorySizeCalculator(context); //获取Glide默认内存缓存大小 int defaultMemoryCacheSize = calculator.getMemoryCacheSize(); //获取Glide默认图片池大小 int defaultBitmapPoolSize = calculator.getBitmapPoolSize(); //将数值修改为之前的1.1倍 int myMemoryCacheSize = (int) (1.1 * defaultMemoryCacheSize); int myBitmapPoolSize = (int) (1.1 * defaultBitmapPoolSize); //修改默认值 builder.setMemoryCache(new LruResourceCache(myMemoryCacheSize)); builder.setBitmapPool(new LruBitmapPool(myBitmapPoolSize)); } @Override public void registerComponents(Context context, Glide glide) { }}
3.自定义磁盘缓存
磁盘缓存按照访问权限及路径可以分为两种
- 私有缓存 (自己本app可以使用,目录在data/data/应用包名 下面)
- 外部缓存(都可以访问,目录在扩展空间内,如SD卡)
3.1私有缓存
下面这样配置的话,主要是修改缓存大小,缓存路径仍为默认路径(即data/data/应用包名/cache/image_manager_disk_cache)
public class XiayuGlideModule implements GlideModule { @Override public void applyOptions(Context context, GlideBuilder builder) { //设置磁盘缓存大小 int size = 100 * 1024 * 1024; //设置磁盘缓存 builder.setDiskCache(new InternalCacheDiskCacheFactory(context, size)); } @Override public void registerComponents(Context context, Glide glide) { }}
如果需求修改缓存路径的话,需要增加一下参数即可(变为data/data/应用包名/cache/xiayu)
//设置磁盘缓存大小 int size = 100 * 1024 * 1024; String dir = "xiayu"; //设置磁盘缓存 builder.setDiskCache(new InternalCacheDiskCacheFactory(context,dir, size));
3.2外部缓存
下面这样配置的话,缓存会在 SDCard/Android/data/应用包名/cache/image_manager_disk_cache目录下
public class XiayuGlideModule implements GlideModule { @Override public void applyOptions(Context context, GlideBuilder builder) { //设置磁盘缓存大小 int size = 100 * 1024 * 1024; //设置磁盘缓存 builder.setDiskCache(new ExternalCacheDiskCacheFactory(context, size)); } @Override public void registerComponents(Context context, Glide glide) { }}
如果需求修改缓存路径的话,需要增加一下参数即可(变为SDCard/Android/data/应用包名/cache/xiayu)
//设置磁盘缓存大小 int size = 100 * 1024 * 1024; String dir = "xiayu"; //设置磁盘缓存 builder.setDiskCache(new ExternalCacheDiskCacheFactory(context,dir, size));
3.3完全自定义路径
上面两种缓存都是把缓存的父目录定死的,能够改变的只是子目录,Glide还提供了一种方式可以完全自定义缓存目录
(需要注意的是这里的路径是配置的绝对路径,所以如果没有指定在sd卡目录下的话是无法直接看到的)
public class XiayuGlideModule implements GlideModule { @Override public void applyOptions(Context context, GlideBuilder builder) { //设置磁盘缓存大小 int size = 100 * 1024 * 1024; String dirFolder = "xia"; String dirName = "yu"; //设置磁盘缓存 builder.setDiskCache(new DiskLruCacheFactory(dirFolder, size)); //builder.setDiskCache(new DiskLruCacheFactory(dirFolder, dirName,size)); } @Override public void registerComponents(Context context, Glide glide) { }}
热门文章
- Okhttputils终极封装
- FaceBook推出的调试神器
- Android代码优化超级工具
- Glide-自定义缓存
- glide:Glide Module案例: 自定义缓存
- Glide入门教程——18.Glide Module案例: 自定义缓存
- Glide框架使用及自定义缓存实现缓存
- glide缓存
- Glide缓存
- Glide缓存
- android自定义Glide图片加载(以更改Glide缓存路径和使用ARGB_8888的图片格式为例)
- Glide图片缓存框架
- glide 缓存处理
- Glide图片缓存知识点
- 图片缓存框架Glide
- Glide清除缓存
- Glide清除缓存
- 安卓下Glide缓存问题
- glide:缓存基础
- Glide图片缓存
- Glide缓存源码解析
- js中的阿拉伯数字转中文大写
- iPhone屏幕尺寸、分辨率及适配
- Android自定义照相机 预览拍照 切换前后置摄像头
- centos安装czmq
- linux设备驱动归纳总结(三):3面向对象思想和lseek
- Glide-自定义缓存
- 2017年情人节热衷旅游异性情侣占比56%
- 微信群发机器人源代码
- Linux学习笔记6 cat,tac,more,less,head,tail
- Think in JAVA中“被检查的异常”的理解
- nginx 限速功能
- windows7 Scrapy安装详细教程
- Android编程权威指南(第二版)学习笔记(二十四)—— 第24章 Looper、Handler 和 HandlerThread
- Spark性能优化:数据倾斜调优