【发布时间】:2010-09-22 06:36:24
【问题描述】:
我在ListView 中实现了延迟加载图像。
我使用AsyncTask 从互联网上下载图像并将其绑定到 UIThread 中的 ImageView。
除了当我快速滚动ListView 时,它的工作原理,下载的图像有时会绑定到列表中的错误项目。
我想问题出在BaseAdapter 中convertView 的重用。
有什么解决办法吗?
非常感谢。
编辑: 我将答案发布如下:
public void setBitmap(int position, Bitmap image) {
View itemView = mListView.getChildAt(position - mListView.getFirstVisiblePosition());
if (itemView != null) {
ImageView itemImageView = (ImageView) itemView.findViewById(R.id.item_imageview);
itemImageView.setImageBitmap(image);
}
}
【问题讨论】:
-
我在这里尝试了这个例子android-developers.blogspot.com/2010/07/… 它可以工作,但仍然有机会绑定错误的图像。比较任务实例的技巧似乎与 Janusz 的答案相同。但它使用弱引用来保存 ImageView 的实例。需要深入挖掘。有什么想法吗?
标签: android android-listview lazy-loading