胸怀万里世界, 放眼无限未来。这篇文章主要讲述Android 手机卫士--home页面相关的知识,希望能为你提供帮助。
文章图片
1.图片错位原理:
如果我们只是简单显示list中数据,而没用convertview的复用机制和异步操作,就不会产生图片错位;重用convertview但没用异步,也不会有错位现象。但我们的项目中list一般都会用,不然会很卡。 在上图中,我们能看到listview中整屏刚好显示7个item,当向下滑动时,显示出item8,而item8是重用的item1,如果此时异步网络请求item8的图片,比item1的图片慢,那么item8就会显示item1的image。当item8下载完成,此时用户向上滑显示item1时,又复用了item8的image,这样就导致了图片错位现象(item1和item8是用的同一块内存哦)。
2.解决方法:
对imageview设置tag,并预设一张图片。 向下滑动后,item8显示,item1隐藏。但由于item1是第一次进来就显示,所以一般情况下,item1都会比item8先下载完,但由于此时可见的item8的tag,和隐藏了的item1的url不匹配,所以就算item1的图片下载完也不会显示到item8中,因为tag标识的永远是可见图片中的url。
// 给 ImageView 设置一个 tag holder.img.setTag(imgUrl); // 预设一个图片 holder.img.setImageResource(R.drawable.ic_launcher); // 通过 tag 来防止图片错位 if (imageView.getTag() != null & & imageView.getTag().equals(imageUrl)) { imageView.setImageBitmap(result); }
【Android 手机卫士--home页面】 https://blog.csdn.net/guolin_blog/article/details/45586553
推荐阅读
- win10输入法不见了?本文教您只要几步就可以找到
- Android百度地图API集成二《定位》
- android studio view.setId报错
- Android Toast提示按两次返回键退出
- Android DatePickerDialogTimePickerDialog
- Android Toast自定义
- android笔记:DatePickerDialog日期设置对话框
- android-数据存储之外部file存储(sdcard)
- Android大字体下,通话界面SIM卡运营商名称显示不全