`

Android实现ListView异步加载图片+缓存+线程池管理

阅读更多
http://www.iteye.com/topic/685986 《Android实现ListView异步加载图片 》相信很多人都用过这个方法,用起来的确不错,但本人的项目中发现,使用起来还是会有些问题:
1.每次启动程序,图片都到网络上去加载,特别耗流量。
2.如果一屏幕显示的listview的item有10条,就会开10条线程同时下载图片,cpu的占用率特别高。
3.每个item生成一个ViweCache对象,特别耗内存。仿照Android的APIdemo的listview适配器写法,
4.item里面如果图片的url是错误的,就会出现图片的占位符号消失,右边的textview的文字移动过来,影响美观。
  因此根据具体的需要,完善了其功能,在其基础上修改了:主要是AsyncImageLoader.java里面的方法。
  在修改的过程中遇到一个问题,listview的getView()方法莫名其妙执行三次的问题,原来是:listview的布局文件的问题:
<ListView 
    android:id="@+id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
 />

  将android:layout_height="wrap_content"修改成:android:layout_height="fill_parent"就可以了。
8
2
分享到:
评论
12 楼 endual 2014-08-15  
项目运行起来,图片会乱的。
11 楼 endual 2014-08-15  
点赞 点赞 点赞 点赞 点赞

有个问题,就是我从网络获取图片,图片是从数据库来的,这个怎么处理?
10 楼 daideshun 2013-10-23  
  
9 楼 dengjiexian123 2013-09-16  
 
8 楼 heiyogl 2013-04-21  
以前没用过,现在需要这个功能了,正好研究研究。。楼主好人哈   
7 楼 sunjigy 2012-11-08  
我想很多人在开发过程中都遇到这个问题,但很少有人能彻彻底底去解决或者能解决这个问题。感谢楼主分享,希望每个人都认真的去学习,而不是只是拿过来,用了。
6 楼 radio123 2012-05-30  
很深奥啊!
5 楼 Thinkingdifferent 2012-05-05  
4 楼 misly 2012-03-27  
顶一个~~~
3 楼 童梦新苑 2012-03-16  
大哥,请教一个问题;
ImageView imageViewByTag = (ImageView) listView.findViewWithTag(imageUrl);
               
                // 防止图片url获取不到图片是,占位图片不见了的情况
                if (imageViewByTag != null && imageDrawable != null ) {
                    imageViewByTag.setImageDrawable(imageDrawable);
                }


这句话是什么意思哦,想了半天都不不知道;
2 楼 童梦新苑 2012-03-15  
很好, 浏览2525次, 就一个人评了;    顶楼主;
1 楼 zhiyou007 2011-09-05  
看看是否好用,多谢楼主

相关推荐

Global site tag (gtag.js) - Google Analytics