我使用了带有 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
and format
在 Glide 4.3.1 上工作吗?
问题是,您没有使用由返回的构建器对象format() http://bumptech.github.io/glide/javadocs/400/com/bumptech/glide/request/RequestOptions.html#format-com.bumptech.glide.load.DecodeFormat-,因此你的行为变得毫无意义,这就是 lint 警告你的原因。你可以see https://github.com/bumptech/glide/blob/master/library/src/main/java/com/bumptech/glide/request/RequestOptions.java#L878该方法注释为@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));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)