Glide在升级到4.8.0之后,明显的两点不同—依赖以及使用:
1.引入依赖
implementation ("com.github.bumptech.glide:glide:4.8.0") {
exclude group: "com.android.support"
}
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
在这里如果不加exclude group: "com.android.support"
会造成support包引入冲突bug,eg:
Program type already present: android.support.design.widget.CoordinatorLayout$1
Message{kind=ERROR, text=Program type already present: android.support.design.widget.CoordinatorLayout$1, sources=[Unknown source file], tool name=Optional.of(D8)}
2.使用之后,原方法error/preload/fallback/signature无法使用
查看新的api,要求提供 “new RequestBuilder()”
public static void display(Context context, ImageView imageView, String url) {
if (imageView == null) {
throw new IllegalArgumentException("argument error");
}
RequestOptions requestOptions = new RequestOptions()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.placeholder(new ColorDrawable(Color.BLACK))
.error(new ColorDrawable(Color.BLUE))
.centerCrop();
Glide.with(context).load(url)
.apply(requestOptions)
.into(imageView);
}
原方法error/preload/fallback等方法都在RequestOptions中添加,其中之前.signature()方法形参支持使用StringSignature,但是现在StringSignature完全被废掉了,不过你可以借用signature方法中的Key中的一个使用相对方便的子类ObjectKey,构造方法以Object为参数:
RequestOptions requestOptions = new RequestOptions()
.signature(new ObjectKey(System.currentTimeMillis()))
.centerCrop();
Glide.with(context).load(url)
.apply(requestOptions)
.into(imageView);
signature它是用来刷新glide填充的图片刷新用的。
简单使用,先整起来,具体原因下次分晓。