Android Glide图片加载-缓存机制(内存缓存和磁盘缓存)
前言
glide的缓存机制。Glide的缓存设计是非常的先进的,考虑的场景也很周全。Glide 的缓存分为两种,一是内存缓存,另一个是硬盘缓存。
这两种缓存的作用各不相同,内存缓存的主要作用是防止应用重复将图片数据读取到内存当中,而硬盘缓存的主要作用是防止应用重复从网络或其他地方重复下载和读取数据。
内存缓存
在默认情况下,Glide自动开启内存缓存的,我们也可以通过调用skipMemoryCache(true) 方法,禁用内存缓存
RequestOptions options = new RequestOptions() // 关闭内存缓存.skipMemoryCache(true); Glide.with(this) .load(url) .apply(options) .into(imageView);
磁盘缓存
备注:Glide缓存的资源分为两种(1,原图(SOURCE)原始图片 2,处理图(RESULT)经过压缩和变形等转化的图片)
硬盘缓存分为五种,具体看一面。可以通过调用diskCacheStrategy()方法并传入五种不同的参数
1,DiskCacheStrategy.NONE// 表示不缓存任何内容
2,DiskCacheStrategy.DATA// 表示只缓存原始图片
3,DiskCacheStrategy.RESOURCE// 表示只缓存转换过后的图片
4,DiskCacheStrategy.ALL // 表示既缓存原始图片,也缓存转换过后的图片
5,DiskCacheStrategy.AUTOMATIC//表示让Glide根据图片资源智能地选择使用哪一种缓存策略(默认选项)
例如,我们既缓存原始图片,又缓存转化后的图片
RequestOptions options = new RequestOptions()// 既缓存原始图片,又缓存转化后的图片.diskCacheStrategy(DiskCacheStrategy.ALL);
Glide.with(this).load(url).apply(options).into(imageView);
组合缓存策略
和其他三级缓存一样,Glide的缓存读取顺序是 内存–>磁盘–>网络
需要注意的是Glide的内存缓存和磁盘缓存的配置相互没有直接影响,所以可以同时进行配置
例如:
1,内存缓存,磁盘不缓存(这是Glide的默认缓存方式,当然也可以自己再配置一次)
RequestOptions options = new RequestOptions()// 内存缓存.skipMemoryCache(false)// 磁盘不缓存.diskCacheStrategy(DiskCacheStrategy.NONE);
Glide.with(this).load(url).apply(options).into(imageView);
2,内存不缓存,磁盘缓存所有图
RequestOptions options = new RequestOptions()// 内存不缓存.skipMemoryCache(true)// 磁盘缓存所有图.diskCacheStrategy(DiskCacheStrategy.ALL);
Glide.with(this).load(url).apply(options).into(imageView);
3, 内存缓存,磁盘也缓存所有图
RequestOptions options = new RequestOptions()// 内存缓存.skipMemoryCache(false)// 磁盘缓存所有图.diskCacheStrategy(DiskCacheStrategy.ALL);
Glide.with(this).load(url).apply(options).into(imageView);
清除缓存
1,清除所有的内存缓存
Glide.get(this).clearMemory();2,清除所有的磁盘缓存
Glide.get(this).clearDiskCache();3,清除单个缓存
Glide.with(this).clear(imageView);
Android Glide图片加载-缓存机制(内存缓存和磁盘缓存)相关推荐
- Android Glide图片加载框架(三)缓存机制
文章目录 一.缓存简介 二.缓存用法 内存缓存方式 磁盘缓存方式 三.缓存KEY 四.内存缓存 内存缓存流程 五.磁盘缓存 磁盘缓存流程 Android Glide图片加载框架系列文章 Android ...
- Android Glide图片加载框架(二)源码解析之into()
文章目录 一.前言 二.源码解析 1.into(ImageView) 2.GlideContext.buildImageViewTarget() 3.RequestBuilder.into(Targe ...
- Android Glide图片加载框架(一)基本用法
文章目录 一.前言 二.简介 三.基本用法 第一步:调用 Glide.with() 方法创建加载图片的实例 第二步:调用 load() 方法指定待加载的图片资源 第三步:调用 into() 方法绑定显 ...
- Android Glide图片加载框架(四)回调与监听
文章目录 Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图片加载框架(二)源码解析之with() Android Gl ...
- Android Glide图片加载框架(二)源码解析之load()
文章目录 一.前言 二.源码分析 1.load() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图片加载框架(二)源 ...
- Android Glide图片加载框架(二)源码解析之with()
文章目录 一.前言 二.如何阅读源码 三.源码解析 1.with() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图 ...
- Android Glide 图片加载框架解析
在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载框架,作者是 bumptech,这个库被广泛的应用在 Google 开源项目中,包括 2014 年 Google I/O ...
- android Glide图片加载库使用
Glide是一款由Bump Technologies开发的图片加载框架,使得我们可以在Android平台上以极度简单的方式加载和展示图片. 要想使用Glide,首先需要将这个库引入到我们的项目当中.新 ...
- Android批量图片加载经典系列——使用LruCache、AsyncTask缓存并异步加载图片
一.问题描述 使用LruCache.AsyncTask实现批量图片的加载并达到下列技术要求 1.从缓存中读取图片,若不在缓存中,则开启异步线程(AsyncTask)加载图片,并放入缓存中 2.及时移除 ...
最新文章
- 什么事情是你当了老板才知道的?
- 自我监督学习:AI技术的未来发展方向
- python php区别-PHP,Python,Java写出来的WEB程序有什么区别?
- 多线程编程学习总结(转载)
- java环境怎么搭,如何搭建一个完整的Java开发环境
- java 放行文件_springmvc中关于静态资源的放行
- linux bash profile bash_profile 小结
- centos7 yum install redis
- win7电脑怎样修改环境变量
- 12张大数据图看看2016年世界各地发生大事件!
- win7 下安装vb6.0(Error accessing the OLE registry)
- Gartner2015新兴技术炒作曲线图
- MIPI通讯的初理解
- 坠落的蚂蚁【思维/模拟】
- 【python实战】利用selenium自动发信息给粉丝(CSDN)
- 真爱如血第七季/全集True Blood迅雷下载
- 程序员怎么高效做笔记
- (转载)技术族谱:软件开发相关知识体系的整理心得(图)
- 如果python程序运行时进入了死循环_碰到python死循环后要怎么退出结束?
- jhipster 使用jh文件生成数据带注释