在AppGlideModule中使用RequestOptions和Glide 4

问题描述 投票:6回答:1

我使用了带有AppGlideModule的`Glide库,库4.1.1的版本。这是我的滑行模块类:

@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?

java android android-glide image-loading
1个回答
3
投票

问题是,你没有使用format()返回的构建器对象,因此你的行为变得毫无意义,这就是lint警告你的原因。你可以see@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));

© www.soinside.com 2019 - 2024. All rights reserved.