gpt4 book ai didi

android - 使用通用图像加载器时,Listview 在 notifyDataSetChanged() 上闪烁

转载 作者:行者123 更新时间:2023-12-05 00:07:20 24 4
gpt4 key购买 nike

我遇到了以下链接中提到的相同问题:

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();

最佳答案

解决方案是在图像未更改时不重新加载图像。

在你的适配器中 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,以便下次重新加载。

关于android - 使用通用图像加载器时,Listview 在 notifyDataSetChanged() 上闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24446020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com