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

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

它的工作原理除外,当我滚动ListView变化很快时,下载的图像有时被绑定到列表中的错误项目.

我想这个问题来自BaseAdapter中convertView的重用.
有什么想法可以解决吗?

非常感谢.

编辑:
我将答案发布如下:

  1. public void setBitmap(int position,Bitmap image) {
  2. View itemView = mListView.getChildAt(position - mListView.getFirstVisiblePosition());
  3. if (itemView != null) {
  4. ImageView itemImageView = (ImageView) itemView.findViewById(R.id.item_imageview);
  5. itemImageView.setImageBitmap(image);
  6. }
  7. }

解决方法

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

猜你在找的Android相关文章