在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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...