Glide4.8.0升级后的使用

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填充的图片刷新用的。
简单使用,先整起来,具体原因下次分晓。

猜你喜欢

转载自blog.csdn.net/julystroy/article/details/84591378
今日推荐