ListView图片异步加载

kaxionen2011 2012-08-27 09:40:30
做了一个listView,左边图片,右边文字,想实现进入ListView的Activity后给左边图片加载一个默认图片,然后更新出真实图片,用Handler的话,更新的时候界面是卡死的,请问怎么实现啊,给个思路或者文章地址也行
...全文
90 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙泉剑 2012-08-27
  • 打赏
  • 举报
回复
这个可以分部加载,每次只加载可见的部分,等用户滑动listview的时候更新可见部分
coderandroid 2012-08-27
  • 打赏
  • 举报
回复
使用图片'按钮试一下.
丶随心 2012-08-27
  • 打赏
  • 举报
回复
这个,貌似如果是listview的话,最好不要异步做。
我说个我之前的故事,看跟你这个问题有没有关系。
我这个是listview,然后在bindview里面,启动线程,去异步加载图片,同时把这个VIEW也带上的。由于所有UI相关,必须在UI主线程做,所以图片读好了,我还需要在这个线程再启动一个UI线程,把图片加载到这个VIEW里面去。
貌似这样是没问题的,测试也OK。后来发现,这有个问题,由于这个VIEW被我启动这个线程关联了,造成我这个VIEW没法被回收。这样就导致,我这个LISTVIEW有很多个条目,要创建N多个VIEW。后来暴了。
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权限已经网络访问权限的加入

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧