微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在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中)也是危险的!

原文地址:https://www.jb51.cc/android/308737.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐