dependencies {
//...
implementation 'com.github.bumptech.glide:glide:4.8.0'
implementation 'jp.wasabeef:glide-transformations:4.0.1'
}
如果想使用Glide新特性-->GlideApp建造者模式的话请配置,使用方法请搜索Glide新特性
dependencies {
//...
annotationProcessor 'com.github.bumptech.glide:compiler::4.8.0'
}
Glide.with(context).load(xxx).into(xxx);
RequestOptions option = new RequestOptions()
.placeholder(R.drawable.ic_launcher_background)// 占位符
.error(R.drawable.ic_launcher_background)// 异常;
Glide.with(context).load(xxx).apply(option).into(xxx);
RequestOptions option = new RequestOptions()
.transform(new RoundedCornersTransformation(CommonUtil.INSTANCE.dp2px(context, 6), 0));
Glide.with(context).load(xxx).apply(option).into(xxx);
RequestOptions option = new RequestOptions()
.transform(new BlurTransformation(25));
Glide.with(context).load(xxx).apply(option).into(xxx);
RequestOptions option = new RequestOptions()
.transform(new GrayscaleTransformation());
Glide.with(context).load(xxx).apply(option).into(xxx);
MultiTransformation multi = new MultiTransformation(
new BlurTransformation(25),
new RoundedCornersTransformation(128, 0, RoundedCornersTransformation.CornerType.ALL));
Glide.with(context).load(xxx).apply(multi).into(xxx);
Glide.with(context)
.asBitmap()
.load(xxx)
.into(new SimpleTarget() {
@Override
public void onResourceReady(Bitmap resource,Transition super Bitmap> transition) {
mThumBitmap = Bitmap.createScaledBitmap(resource, 50, 50, true);
Log.d(TAG, "压缩后图片的大小" + (mThumBitmap.getByteCount() / 1024)
+ "KB宽度为" + mThumBitmap.getWidth() + "高度为" + mThumBitmap.getHeight());
imageView.setImageBitmap(resource);
}
});
//用原图的1/10作为缩略图
Glide.with(context)
.load(xxx)
.thumbnail(0.1f)
.into(iv_0);
//用其它图片作为缩略图
DrawableRequestBuilder thumbnailRequest = Glide
.with(context)
.load(R.drawable.xxx);
Glide.with(context)
.load(xxx)
.thumbnail(thumbnailRequest)
.into(iv_0);
1.设置内存缓存开关
skipMemoryCache(true)//是否跳过内存缓存,默认false 不跳过
2.设置磁盘缓存模式
diskCacheStrategy(DiskCacheStrategy.NONE)
可以设置4种模式
DiskCacheStrategy.NONE:表示不缓存任何内容。
DiskCacheStrategy.SOURCE:表示只缓存原始图片。
DiskCacheStrategy.RESULT:表示只缓存转换过后的图片(默认选项)。
DiskCacheStrategy.ALL :表示既缓存原始图片,也缓存转换过后的图片。
RequestOptions options = new RequestOptions();
options.skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE);
Glide.with(this).load(xxx).apply(options).into(xxx);
3.标签signature的使用
问题:Glide加载相同URL时由于缓存无法更新图片
可以通过更改缓存配置解决该问题以外,还可以通过设置signature标签使每次的请求都是一个新的请求
//在需要重新获取图片时调用
String sign = String.valueOf(System.currentTimeMillis());
Glide.with(this).load(xxx).signature(new StringSignature(sign)).into(xxx);