我使用了带有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的结果”:
那么,如何解决这个问题呢?那些方法diskCacheStrategy
和format
是否适用于Glide 4.3.1?
问题是,你没有使用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));