在Android上的ListView中加载延迟图像

前端之家收集整理的这篇文章主要介绍了在Android上的ListView中加载延迟图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在ListView中实现了延迟加载图像.
我使用AsyncTask从Internet下载图像并将其绑定到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);
    }
}

解决方法

在适配器中创建一个名为void setBitmap(Bitmap bitmap,int position)或类似函数.当新位图可用时,让AsyncTask调用方法.然后,此方法可以在UI-Thread本身上调用notifyDataSetChanged()以确保刷新视图.在适配器中保持对视图的引用(即使将它们保存在AsyncTask中)也是危险的!

猜你在找的Android相关文章