我面临的问题在下面给出的链接中提到:
https://github.com/nostra13/Android-Universal-Image-Loader/issues/376
我已经检查了上述链接中的解决方案,似乎下面给出的解决方案正在解决问题:
ImageAware imageAware = new ImageViewAware(imageView, false);
imageLoader.displayImage(imageUri, imageAware);
但如果我将选项传递给上述代码中的displayImage
()方法,则会出现同样的闪烁问题。这意味着,以下代码导致问题:
ImageAware imageAware = new ImageViewAware(imageView, false);
imageLoader.displayImage(imageUri, imageAware,options);
当我将“选项”传递给displayImage()
方法时,如何停止闪烁问题?
这是我传递给方法的选项:
options = new DisplayImageOptions.Builder().showImageForEmptyUri(R.drawable.empty).showImageOnLoading(R.drawable,loading).showImageOnFail(R.drawable.failed).cacheOnDisc(true).bitmapConfig(Bitmap.Config.RGB_565).imageScaleType(ImageScaleType.IN_SAMPLE_INT).build();
答案 0 :(得分:0)
解决方案是在图像未更改时不重新加载。
在适配器中getView()执行:
// schedule rendering:
final String path = ... (set path here);
if (holder.lastImageUrl == null || !holder.lastImageUrl.equals(path)
|| holder.headerImageView.getDrawable() == null) {
// refresh image
imageLoader.displayImage(imageUri, imageAware);
} else {
// do nothing, image did not change and does not need to be updated
}
成功(添加ImageLoadingListener)你设置holder.lastImageUrl = path,失败并取消你将holder.lastImageUrl设置为null,以便下次重新加载。