ListView图片加载错位

ListView加载错位的根本原因是复用了convertView 并且采用了异步加载的方式导致的。假设一个界面中最多显示7个Item,但向上滑动显示第8个Item的时候。第八个Item在内存中的位置复用了第一个Item的内存对象。
此时如果假设第8张图片加载的快而第一张图片加载的慢则会导致Item显示完第八张图片后,第一张图片下载完成,紧接着加载到第八个Item上。这就出现了ListView图片加载错位的问题。

解决方案:
最简单的解决方法就是网上说的,给 ImageView 设置一个 tag, 并预设一个图片。
当 Item1 比 Item8 图片下载的快时, 你滚下去使 Item8 可见,这时 ImageView 的 tag 被设成了
Item8 的 URL, 当 Item1 下载完时,由于 Item1 不可见现在的 tag 是 Item8 的 URL,所以不满足条件,
虽然下载下来了但不会设置到 ImageView 上, tag 标识的永远是可见 view 中图片的 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);
}

ListView图片加载错位问题相关推荐

  1. android listview 图片闪烁,listView异步加载图片导致图片错位、闪烁、重复的问题的解决...

    androidListView是android中重要的控件,几乎每一个项目都会用到.但是在使用中我们避免不 了会出现一些问题,包括一些滑动事件的处理,例如:ListView中嵌套scrollView, ...

  2. Android ListView异步加载图片乱序问题,原因分析及解决方案

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/45586553 在Android所有系统自带的控件当中,ListView这个控件算是 ...

  3. android listview 异步加载图片并防止错位

    网上找了一张图, listview 异步加载图片之所以错位的根本原因是重用了 convertView 且有异步操作. 如果不重用 convertView 不会出现错位现象, 重用 convertVie ...

  4. Android之ListView异步加载图片且仅显示可见子项中的图片

    折腾了好多天,遇到 N 多让人崩溃无语的问题,不过今天终于有些收获了,这是实验的第一版,有些混乱,下一步进行改造细分,先把代码记录在这儿吧. 网上查了很多资料,发现都千篇一律,抄来抄去,很多细节和完整 ...

  5. ListView异步加载图片,完美实现图文混排

    昨天参加一个面试,面试官让当场写一个类似于新闻列表的页面,文本数据和图片都从网络上获取,想起我还没写过ListView异步加载图片并实现图文混排效果的文章,so,今天就来写一下,介绍一下经验. Lis ...

  6. Android实现ListView异步加载图片

    转: http://www.iteye.com/topic/685986 ListView异步加载图片是非常实用的方法,凡是是要通过网络获取图片资源一般使用这种方法比较好,用户体验好,下面就说实现方法 ...

  7. android开发小技巧:实现listview异步加载图片

    2019独角兽企业重金招聘Python工程师标准>>> 针对listview异步加载图片这个问题,麦子学院android开发老师讲了一种非常实用的方法,麦子学院android开发老师 ...

  8. listview异步加载图片

    一般,我们使用listview加载图片时,有很多的jar包已经封装的很好,我们只需要知道怎么使用就可以,比如常用的imageLoader,使用非常的方便.但是,我们也要知道自己怎么用listview异 ...

  9. Android实现ListView异步加载图片总结

    参考自http://blog.csdn.net/wanglong0537/article/details/6334005# http://www.cnblogs.com/slider/archive/ ...

最新文章

  1. P2245 星际导航
  2. python培训费用-上海python培训费用多少?
  3. 近世代数--环同态--环同态基本定理
  4. IDEA中SpringBoot项目使用@Data要安装Lombok插件
  5. python中的sys模块和os_python中os与sys作用与区别
  6. 回顾 | 使用Visual Studio Code进行端到端应用程序开发
  7. 沉沦17年,这位昔日科技霸主、最值钱企业,终于回来了……
  8. DSO 中的Windowed Optimization
  9. 题解 CF1391B 【Fix You】
  10. python数字图像处理(8):对比度与亮度调整
  11. Faiss从入门到实战精通
  12. 如何根据图片找到图中的地点
  13. TortoiseGit - 详细提交流程
  14. (单例多例,枚举,动态代理,lombok)day23javaSE基础查漏补缺
  15. Unity游戏神经网络版坦克大战
  16. 在gitee上建自己的博客
  17. 分享基于HTTP长连接的Web端即时通讯技术
  18. 上海产品运营招聘面试技巧分析
  19. 网络虚拟化城域网创新实践
  20. 入门CG板绘须知:学插画需要学好素描吗?

热门文章

  1. C++:实现 1 级 BLAS 或基本线性 代数子程序,使用双精度实数算术(附完整源码)
  2. kdevtmpfsi木马清除
  3. ChatGLM2-6B、ChatGLM-6B 模型介绍及训练自己数据集实战
  4. 今日之AI,能否回应“中文屋”的质疑?
  5. 欧姆龙PLC程序欧姆龙案例欧姆龙标准程序
  6. 服务器安全设置Centos7 防火墙firewall与iptables
  7. 快排 (quick sort)
  8. C# 线程池 ThreadPool
  9. UVALIVE 3307 Adventurous Driving
  10. Python如何实现机器人聊天