关于UniversalImageLoader加载图片时的闪烁问题
今天在做瀑布流是遇到了一个问题,当瀑布流加载下一页的时候会出现图片闪烁的问题,由于我是用的universalimageloader这个包,而我又给它设置了下载过程中的默认图片,所以闪烁现象应该是出现在图片在从内存中去读取图片的过程。解决这一现象的思路是给需要下载图片的ImageView一个tag,tag的值设置为要加载的图片的url,然后在利用ImageLoader之前判断一下,该ImageView 的Tag是否等于要加载的图片的url,如果相等则不必在加载。不相等的情况下再去加载。代码如下:
String tag = (String) holder.mIvContent.getTag();
if (tag==null||!tag.equals(imageInfo.getUrl())) {
imageLoader.displayImage(imageInfo.getUrl(), holder.mIvContent, mOptions, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String s, View view) {
}
@Override
public void onLoadingFailed(String s, View view, FailReason failReason) {
}
@Override
public void onLoadingComplete(String s, View view, Bitmap bitmap) {
holder.mIvContent.setTag(imageInfo.getUrl());//确保下载完成再打tag.
}
@Override
public void onLoadingCancelled(String s, View view) {
}
});
}
至此,问题总算解决。