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

  • Post author:
  • Post category:其他


http://www.iteye.com/topic/685986 《Android实现ListView异步加载图片 》相信很多人都用过这个方法,用起来的确不错,但本人的项目中发现,使用起来还是会有些问题:

[b]1.[/b]每次启动程序,图片都到网络上去加载,特别耗流量。

[b]2.[/b]如果一屏幕显示的listview的item有10条,就会开10条线程同时下载图片,cpu的占用率特别高。

[b]3.[/b]每个item生成一个ViweCache对象,特别耗内存。仿照Android的APIdemo的listview适配器写法,

[b]4.[/b]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”修改成:[b]android:layout_height=”fill_parent”[/b]就可以了。