2009-12-15 60 views
1

我正在使用listview来显示数据,在listview内我正在每个listenite中使用图像。Android listvitem AsyncTask图像重叠

下面的方法从包装类

public View getView(int position, View convertView, 
    ViewGroup parent) { // implementation } 

我下面这个教程 http://developer.android.com/guide/samples/ApiDemos/src/com/example/android/apis/view/List4.html

class DownloadImage extends AsyncTask<Void, Void, Drawable>{ 
     @Override 
     protected Drawable doInBackground(Void... params) { 
      return Util.getImageFromURL(imageURL); 
     } 

     @Override 
     protected void onPostExecute(Drawable d) { 
      getImageIcon().setImageDrawable(d); 
     } 

} 
new DownloadImage().execute(); 

以上代码为每台的listItem懒图片上传调用。

问题是加载后的第一个图像图像彼此重叠....任何想法为什么发生这种情况?

+1

你能澄清你的意思是“图像彼此重叠”吗?你的意思是ListView不能正确绘制?还是所有的图像都显示为单个列表项目? – 2009-12-15 09:17:01

+0

overalapping意味着一个项目图像显示在第二个listitem第二个监听图像消失并被任何其他listietm的图像取代。 – 2009-12-15 09:55:19

回答

5

ListView行得到回收。您可能正在更新已回收的行,因此相关图片不再有效。

在我cwac-thumbnail项目,我把URL的ImageView的标签,然后确认ImageView仍然有标签,当我去更新图像。这样,如果ImageView现在需要不同的图像,我不会更改它以显示错误的图像。

+0

非常感谢gr8实现仍然在寻找缓存图像。 – 2009-12-15 12:15:05