Glide 4概述
Glide 4的基本用法、缓存机制、回调与监听、图片变换、自定义模块等用法,那么今天这篇文章的目标就很简单了,就是要掌握如何在Glide 4上实现之前所学习过的所有功能,那么我们现在就开始吧。
开始
要想使用Glide,首先需要将这个库引入到我们的项目当中。新建一个Glide4Test项目,然后在app/build.gradle文件当中添加如下依赖:
implementation 'com.github.bumptech.glide:glide:4.8.0'
// 一般需要上面那个依赖就可以了
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
还得在AndroidManifest.xml中声明一下网络权限才行:
<uses-permission android:name="android.permission.INTERNET" />
加载图片
现在我们就来尝试一下如何使用Glide来加载图片吧。
Glide.with(this).load(url).into(imageView);
中级用法
RequestOptions mRequestOptions = RequestOptions.circleCropTransform()
.fitCenter() // ScaleType 看下面解释
.placeholder(R.drawable.ic_launcher_background)//占位图--加载中显示的图片
.error(R.drawable.ic_launcher_foreground)// 错误后显示的图片
.skipMemoryCache(true);//不做内存缓存
Glide.with(this)
.load(imgUrl)
.apply(mRequestOptions)// 应用配置
.listener(new RequestListener<Drawable>() { // 监听器
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
// 加载失败
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
// 加载完成
return false;
}
})
.into(mImg1);
- 图片的ScaleType
- CENTER 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
- CENTER_CROP 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽
- CENTER_INSIDE 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
- FIT_CENTER 把图片按比例扩大/缩小到View的宽度,居中显示
- FIT_XY 不按比例缩放图片,目标是把图片塞满整个View。
调用diskCacheStrategy()方法并传入DiskCacheStrategy.NONE,就可以禁用掉Glide的硬盘缓存功能了。
DiskCacheStrategy.NONE: 表示不缓存任何内容。
DiskCacheStrategy.DATA: 表示只缓存原始图片。
DiskCacheStrategy.RESOURCE: 表示只缓存转换过后的图片。
DiskCacheStrategy.ALL : 表示既缓存原始图片,也缓存转换过后的图片。
DiskCacheStrategy.AUTOMATIC: 表示让Glide根据图片资源智能地选择使用哪一种缓存策略(默认选项)。