我在 android 4.2.2 上遇到了 Universal Image Loader 1.9.1 的问题。这里描述的相同:Android Universal image loader, stop retry。我已经多次阅读 NOSTRA 的答案,但我不知道如何实现它。我应该扩展 BaseImageDownloader 并覆盖 getStream 方法吗?我想使用答案的最后一部分:
UIL 不会自行重试图像加载。如果你返回 null 那么你会得到 onLoadingFailed(...) 回调。如果您再次为同一 URL 调用 displayImage(...),则 UIL 将尝试再次加载图像。如果你想阻止它,那么你应该将“坏”的 URL 保留在某个地方,而不是为这些 URL 调用 ImageLoader,或者在 ImageDownloader 中从这些 URL 返回 null。
基本上,避免 UIL 尝试一遍又一遍地联系指向无效图像文件的有效 URL 的最简单方法是什么?我不知道它是否有用,这里是我的配置:
DisplayImageOptions options = new DisplayImageOptions.Builder()
.resetViewBeforeLoading(true).cacheInMemory(true)
.cacheOnDisc(true)
.imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
.showImageForEmptyUri(R.drawable.photo_placeholder)
.showImageOnFail(R.drawable.photo_placeholder).build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
context).memoryCacheExtraOptions(200, 200)
.discCacheExtraOptions(200, 200, CompressFormat.JPEG, 75, null)
.threadPoolSize(5).denyCacheImageMultipleSizesInMemory()
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
.imageDownloader(new BaseImageDownloader(context) {
})
.defaultDisplayImageOptions(options).build();
我真的需要一些帮助,我的应用程序大量使用 UIL。