使用Glide 4中的AppGlideModule RequestOptions

10

我使用了版本为4.1.1的Glide库和AppGlideModule。以下是我的Glide模块类:

@GlideModule
public class GlideUtil extends AppGlideModule {

    private final int IMAGE_CACHE_SIZE = 20 * 1024 * 1024; // 20 MB
    private final String IMAGE_FOLDER = "/User/Images";

    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        RequestOptions requestOptions = new RequestOptions();
        requestOptions.format(DecodeFormat.PREFER_ARGB_8888);
        requestOptions.diskCacheStrategy(DiskCacheStrategy.ALL);
        builder.setDefaultRequestOptions(requestOptions);
        InternalCacheDiskCacheFactory factory = new InternalCacheDiskCacheFactory(context, IMAGE_FOLDER, IMAGE_CACHE_SIZE);
        builder.setDiskCache(factory);

    }

    @Override
    public boolean isManifestParsingEnabled() {
        return false;
    }

这段代码之前能够成功运行。但是当我更新了Glide库到4.3.1版本后,出现了问题。
compile 'com.github.bumptech.glide:glide:4.3.1' 
annotationProcessor 'com.github.bumptech.glide:compiler:4.3.1'

在GlideUtil类中,我看到了以下信息:"格式化的结果未被使用","diskCacheStrategy的结果未被使用":

enter image description here

那么,如何解决这个问题?diskCacheStrategyformat方法在Glide 4.3.1中是否可用?

1个回答

6
问题在于,您没有使用由format()返回的构建器对象,因此您的操作变得毫无意义,这就是为什么lint会发出警告。您可以查看到被@CheckResult注释的方法,这就是lint如何理解您走错了路,因为您没有“检查”该方法返回的结果。
相反,请执行以下操作:

    RequestOptions requestOptions = new RequestOptions();
    requestOptions = requestOptions.format(DecodeFormat.PREFER_ARGB_8888);
    requestOptions = requestOptions.diskCacheStrategy(DiskCacheStrategy.ALL);

现在警告将消失。
或者您也可以直接执行以下操作:

    builder.setDefaultRequestOptions(new RequestOptions()
                                        .format(DecodeFormat.PREFER_ARGB_8888)
                                        .diskCacheStrategy(DiskCacheStrategy.ALL));


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接