1.Glide是什么?
Glide是一个面向Android的快速高效的开源媒体管理和图像加载框架,它将媒体解码、内存和磁盘缓存以及资源池封装到一个简单易用的接口中;
Glide支持获取、解码和显示视频静像、图像和动画GIF。Glide包括一个灵活的API,允许开发人员插入几乎任何网络堆栈。默认情况下,Glide使用自定义的基于HttpUrlConnection的堆栈,但也包括插件到Google的Volley项目或Square的OkHttp库中的实用程序库。
Glide的主要重点是尽可能平滑和快速地滚动任何类型的图像列表,但Glide也适用于几乎任何需要获取、调整大小和显示远程图像的情况;
2.Glide依赖
在app_module下bulid.gradle添加glide依赖
dependencies { implementation 'com.github.bumptech.glide:glide:4.6.1' annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1' }
3.Glide如何加载gif动画
//默认用glide加载本地或者网络gif图片
Glide.with(Context) .asGif() .load(res或者gif的url链接) .into(ImageView);
3.1解决Glide加载gif非常慢的问题
添加缓存策略提高加载显示速度
RequestOptions options = new RequestOptions() .fitCenter() .diskCacheStrategy(DiskCacheStrategy.DATA); Glide.with(context) .asGif() .load(res) .apply(options) .into(imageView);
为其添加缓存策略,其中缓存策略可以为:DATA及None,None及为不缓存,DATA缓存原型;推荐使用DATA在资源解码前缓存,保证图片不被压缩,此属性会导致第一次加载过慢,我的解决办法是做预加载;
Glide3.0和4.0的缓存策略DiskCacheStrategy区别
Glide3.0
DiskCacheStrategy.NONE:不缓存
DiskCacheStrategy.SOURCE:之缓存原图
DiskCacheStrategy.RESULT:只缓存最终要显示的图片(默认选项; Picasso默认缓存原图)
DiskCacheStrategy.ALL:缓存所有版本的图片
Glide4.0
DiskCacheStrategy.ALL 使用DATA和RESOURCE缓存远程数据,仅使用RESOURCE来缓存本地数据;
DiskCacheStrategy.NONE 不使用磁盘缓存;
DiskCacheStrategy.DATA 在资源解码前就将原始数据写入磁盘缓存;
DiskCacheStrategy.RESOURCE 在资源解码后将数据写入磁盘缓存,