[Android初级]关于使用universal-image-loader加载imagelist出现图片闪烁的问题

对于开源框架universal-image-loader大多数开发者都不会陌生,的确这是一款很不错的图片类框架,值得推荐。

github地址是:https://github.com/nostra13/Android-Universal-Image-Loader

有时间或者有兴趣的同志可以去体验一下。

    

     开始本贴的主要问题:在使用listview加载图片的过程中,当你写好你的适配器中并调用imageLoader的displayImage(uri, imageView) 会出现这样的情况:拖动listview会出现图片的闪烁(重复刷新的情况)。很明显,这是很不讨人喜欢的用户体验!

   如何解决?

   首先要知道问题出在哪边,看看你在adapter中的getView方法吧。

   首先你要确保在每次适配器调用getview的时候,你的viewholder 中的imageview不会重复加载图片,什么意思呢?看代码:

String imagepath = StringUtils.getImageExternalPath(context, imageUri);
					holder.itemImage.setScaleType(ScaleType.CENTER_CROP);
					if(!imagepath.equals(holder.itemImage.getTag())){							
						holder.itemImage.setTag(imagepath);
						mImageLoader.displayImage("file://" + imagepath,
								holder.itemImage,
								BaseApplication.imageOptions_item, null);
					}

如上代码是说,listitem 中的imageview,在界面刷新的过程中,不会重复的去displayImage,这个imageView已经加载过图形了,没必要再去刷新,导致闪烁的现象。而你要做的就是加个判断,我把它(图片路径)保存在imageView的tag中,每次getView我都会先判断它是否存在,这样就行了。

有更好的解决方法的话,请留言!感谢!


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值