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的布局文件的问题:
[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]就可以了。