我列出了网址,每个网址都对应图片。
我需要在ListView
。
目前,我的方法是将包含此List<String>
的网址传递给CustomAdapter (extending BaseAdapater)
。
ListView中的每个行项目都会以ImageView
充实。
然后在getView()
方法中,如果currentImageView == null
,那么我将开始AsyncTask
,它会下载imageList.get(position)
的位图。
然后在postExecute()
中,我设置currentImageView.setBitmap(downloadedBitmap)
。
以这种方式,从适配器内部,我将逐个为每个图像调用AsyncTask。
如果您认为,这种方法有问题,请告诉我。另外,请建议正确的方法。
当某个列表元素的AsyncTask正在进行时,我发现了一个方法的缺陷&amp;用户向下滚动然后向上滚动,将再次调用相同的异步任务。
我该如何防止这种情况?
答案 0 :(得分:1)
当您的视图被回收时,currentImageView将不为null并且它将继续显示相同的图像。我建议使用Universal Image Loader。它可以为您提供所有这些功能,包括缓存和其他功能。
答案 1 :(得分:0)
试试这个library
然后在getView方法中,只需添加此代码
UrlImageViewHelper.setUrlDrawable(holder.image, model.getimageURL(), R.drawable.placeholder);
参数1是您的ImageView,第二个参数是图像URL,最后一个是占位符图像。