Universal ImageLoader 在ListView刷新时会闪动

谷梁子濯
2023-12-01

com.nostra13.universalimageloader.core.ImageLoader

用ImageLoader加载图片的时候,会调用

public void displayImage(String uri, ImageView imageView, DisplayImageOptions options)

用到一个options参数,用来规定加载前、中、失败后的默认显示图片和其他配置。

在一个频繁刷新的ListView中使用ImageLoader后,在某些手机上会发现图片闪动。经过分析,原来是DisplayImageOptions的问题。

之前的DisplayImageOptions是这样写的:

imageOptions = new DisplayImageOptions.Builder().bitmapConfig(Bitmap.Config.RGB_565).showStubImage(R.drawable.icon_default)
					.showImageForEmptyUri(R.drawable.icon_default).showImageOnFail(R.drawable.icon_default).cacheInMemory(true)
					.cacheOnDisc(true).build();

其中的showStubImage()造成了加载前先显示默认图片的问题,造成了闪动。修改为以下代码后就正常了:


imageOptions = new DisplayImageOptions.Builder().bitmapConfig(Bitmap.Config.RGB_565)
					.showImageForEmptyUri(R.drawable.icon_default).showImageOnFail(R.drawable.icon_default).cacheInMemory(true)
					.cacheOnDisc(true).build();



 类似资料: