社区
高通开发者论坛
帖子详情
ListView 中图片错位的问题是如何产生的?
weixin_28728403
2020-02-27 02:22:49
ListView 中图片错位的问题是如何产生的?
...全文
1817
回复
打赏
收藏
ListView 中图片错位的问题是如何产生的?
ListView 中图片错位的问题是如何产生的?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixin_38498942
2020-02-27
打赏
举报
回复
异步加载及对象被复用可能会造成此现象。
listview
图片
异步加载
图片
错位
软引用 getView调用次数 convertView重用
ListView
异步加载
图片
,
图片
错位
问题
解决方案 *
问题
分析:我们在使用AsyncTask异步下载
图片
的时候,经常会用到convertView的重用,一般情况下,滑动后第一个可见的元素(我们给它命个名,称为A1)和 *
listview
的第一个元素(A)是公用一个convertView的(一般情况),此时
问题
就来了,如果异步下载
图片
执行的比较慢,第一个元素对应的url * 下载的
图片
会放到第一个元素上面还是滑动后第一个可见的元素上面呢? * 解决方案:给每个
listview
的ImageView设置tag,使用findViewWithTag()的方式来得到ImageView,此时
图片
就不会
产生
错位
了。而且 * 值得注意的是,由于A和A1使用同一个convertView,因此如果A
中
的ImageView已经有值得话,当A2展示的并且它所对应的
图片
还未加载完成的时候, * A2会显示A上的
图片
,这明显是不对的,因此我们这里给它设置一个默认的icon,即mHolder.mImageView.setImageResource(R.drawable.ic_launcher); * 思路简介:一般
listview
中
涉及到
图片
加载的,为了提高用户体验,一般会使用一个软引用和存文件的方式来实现。不过还见过这样来实现的:即用一个HashMap来存放很小一部分的数据, * 当HashMap
中
的大小达到一定的值时,清空HashMap,并且将数据放入软应用
中
。 * 注意操作sdcard权限已经网络访问权限的加入
Android 45 道面试题及答案.docx
Android 45 道面试题及答案.docx
imageCache
listview
加载
图片
工具, 1、适用范围:
listView
/GridView/ViewPager等使用Adapter适配图文混排, 2、列表上下滚动时
图片
会
产生
错位
现象的解决:使用唯一标志位tag(可以是
图片
的url)进行标记。
3、列表上下滚动时多条线程重复下载同一张
图片
造成资源浪费
问题
的解决:同步监视器和tag配合使用。
4、
图片
缓存
问题
,使用内存缓存和SDCard缓存,优先查找一级缓存,其次查找二级缓存,均无时下载,下载完毕后添加到两个缓存
中
5、其它
问题
:设置默认
图片
、
图片
尺寸、OOM。
可侧滑的
listview
swipe
listview
可侧滑的
listview
swipe
listview
高通开发者论坛
4,672
社区成员
5,875
社区内容
发帖
与我相关
我的任务
高通开发者论坛
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
复制链接
扫一扫
分享
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能
物联网
机器学习
技术论坛(原bbs)
北京·东城区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章