listview图片加载错乱的原理和解决方案
来源:互联网 发布:在java当中interface 编辑:程序博客网 时间:2024/06/05 10:42
加载错乱的原因
1.listView滑动时复用的ContentView,复用contentView其实是listview保证不会oom的一种策略,listview本身有一种叫做RecycleBin机制的帮助下,实现了一个生产者和消费者的模式,保证来来回回就那么几个view,移出屏幕的子View会很快被移入屏幕的数据重新利用起来 原理如下图片
2.采用异步加载图片,因为复用的性质,导致划出屏幕的view重新被利用显示出来在最新的位置上,为原来的view有图片,所以新进入屏幕的位置会有图片显示,而这张图片其实就是刚刚划出屏幕是现实的图片,这是异步又加载请求图片,返回图片后再给新位置上的view设置最新的图片,也就是造成图片错乱。
以上这两条就促成了加载图片错乱
解决方案
方案一
1.在adapter中的构造函数 获取listview
2.在getview方法中给imageview设置tag,这个tag可以为url,同时设置一个默认图片,注意设置默认图片的地方 异步请求之前,
3.在异步任务中的onPostExecute方法中重新获取ImageView,通过listview.findViewWIthtag()方法,传入对应的tag,这样就可以保证ImageView绑定的tag相对应,要判断ImageView不为空,因为在getview方法给View添加个新的tag,而老的tag会被覆盖掉,所以若拿老的tag获取IamgeView会为null的。
方案二
采用第三方加载图片的网络框架 比Volley,使用它的NetWorkImageView代替ImageView,则可以实现成不错乱。
阅读全文
0 0
- listview图片加载错乱的原理和解决方案
- listview 加载图片错乱(错位)
- ListView图片加载错乱01
- ListView图片加载错乱02
- ListView图片加载错乱03
- 解决ListView异步加载图片错乱问题
- 解决ListView异步加载图片错乱问题
- 解决ListView异步加载图片错乱问题
- 解决ListView异步加载图片错乱问题 .
- android listview 加载图片错乱(错位)(2)
- android listview 加载图片错乱(错位)
- Android ListView异步加载网络图片出现位置错乱闪烁及优化ListView的加载
- 个人记录1-解决listview异步加载图片错位,滑动listview错乱抖动的问题
- ImageLoader加载本地和网络图片出现错乱的问题
- 关于ListView数据错乱的解决方案
- 关于ListView数据错乱的解决方案
- 关于ListView数据显示错乱的解决方案
- Android 解决ListView异步加载网络数据(图片文字)出现位置错乱以及优化ListView的加载
- web项目整合MongoDb出现No converter found capable of converting from org.bson.types.ObjectId to type Long异常
- 我的py3笔记-基础数据类型
- MAC下登录SSH
- TCP和UDP的区别
- Spring入门(AOP API、ProxyFactoryBean其二)
- listview图片加载错乱的原理和解决方案
- HTTP与HTTPS的联系与区别
- 通过DeviceIoControl获取真实网卡地址
- Failed to start LSB: Bring up/down networking. 虚拟机重启network失败, 解决方案
- 用C语言实现一个简单的Linux壳层(Shell)
- Django--其他常用功能之保留原页面所有内容
- SSH组合工程之-struts2&hibernate(工程下载)
- poj2932:Coneology(扫描线)
- Jmeter-测试JAVA