Glide4.8.0升級後的使用
阿新 • • 發佈:2018-12-24
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填充的圖片重新整理用的。
簡單使用,先整起來,具體原因下次分曉。