Android 如何在使用回收视图的listview中进行延迟加载?

Android 如何在使用回收视图的listview中进行延迟加载?,android,Android,我试着在listview上通过从web获取提示来惰性地加载图像 唯一的问题是,当列表适配器回收视图时,会导致为列表中的第一行加载错误的图像。当我阻止适配器循环使用视图时,它工作得很好,但这不是执行listview的最有效方法。有没有一种方法可以在listview中通过回收行的视图惰性加载图像?参考以下链接..它们可以帮助您吗 我们可以通过将imageview上的URL设置为标记来避免加载错误的图像。每次加载图像时,我们都需要交叉检查正在加载请求图像的图像的URL。看看下面的解决方案 活动:请求

我试着在listview上通过从web获取提示来惰性地加载图像
唯一的问题是,当列表适配器回收视图时,会导致为列表中的第一行加载错误的图像。当我阻止适配器循环使用视图时,它工作得很好,但这不是执行listview的最有效方法。有没有一种方法可以在listview中通过回收行的视图惰性加载图像?

参考以下链接..它们可以帮助您吗


我们可以通过将imageview上的URL设置为标记来避免加载错误的图像。每次加载图像时,我们都需要交叉检查正在加载请求图像的图像的URL。看看下面的解决方案

活动:请求图像视图的图像的位置

 if( referenceImageURL.length()!=0){
       //Store the image URL as Tag on the image view
       holder.refImageView.setTag(referenceImageURL);    
       // use the image loader to download and load the image  
       //pass the image-view and the URL to image loader   
       imageManager.loadImage(referenceImageURL,holder.refImageView);
}else{
    //URL is empty for this list-item
    //set null on Tag and load default image here
          holder.refImageView.setTag(null);
   ...
}
ImageManager:负责下载和缓存图像

  //after image is downloaded, before loading it to the view
  //cross check if this image-view is recycled if yes,
  //getTag returns different URL than the one which is used to download image
  String url = (String) m_imageViewRef.get().getTag();
  if(url != null && url.compareTo(m_url) == 0 ){                                        
  m_imageViewRef.get().setImageBitmap(result);

在将缓存图像加载到图像视图之前使用相同的概念

这正是我尝试过的方法,但如果同时使用此视图和回收视图,则显示的第一幅图像将不正确。你能详细说明回收是什么意思吗?您是否每次获得图像时都调用bitmap.recycle()。@Santhosh不,他的意思是通过
getView(…)
中的
convertView
参数,一个视图可以被另一个项目使用。他们接受帮助您的答案,或者如果您做了一些不同的事情,就添加解决方案。。与ppl分享。我想出来了,但忘了在这里发布,这就是我最后要做的:)无论如何,谢谢