在 Glide 4 中使用 AppGlideModule 中的 RequestOptions

Using RequestOptions in AppGlideModule with Glide 4

我将 `Glide 库与 AppGlideModule 一起使用,库版本为 4.1.1。这是我的滑行模块 class:

@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 class 中我看到消息:"The result of format is not used"、"The result of diskCacheStrategyis not used":

那么,如何解决这个问题呢? diskCacheStrategyformat 方法是否适用于 Glide 4.3.1?

问题是,您没有使用由 format(), thus your actions become pointless, that's why lint warns you. You can see 返回的生成器对象,该方法用 @CheckResult 注释,lint 就是这样理解的,您走错了路,因为你是那个方法返回的"not checking the result"

改为执行以下操作:


    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));