2009-12-15 5 views
1

listview를 사용하여 listview에서 모든 listeitem의 이미지를 사용하고 있습니다. 내가 코드 위 http://developer.android.com/guide/samples/ApiDemos/src/com/example/android/apis/view/List4.htmlAndroid listvitem AsyncTask 이미지가 중복됩니다.

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에 대한 게으른 이미지 업로드를 수행하는이 튜토리얼을 다음입니다

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

다음 방법은 래퍼 클래스에서 호출됩니다.

첫 번째 이미지 이미지를로드 한 후 문제가 서로 겹치고 있습니다.

+1

"이미지가 서로 겹치는 것"이 ​​무슨 뜻인지 분명히 할 수 있습니까? ListView가 올바르게 그리지 않는다는 것을 의미합니까? 또는 단일 목록 항목에 대해 모든 이미지가 표시됩니까? –

+0

오버랩은 두 번째 listitem에 표시되는 한 항목 이미지를 의미하며 두 번째 listeitem 이미지는 사라지고 다른 listietm의 이미지로 대체됩니다. –

답변

5

ListView 행을 재활용합니다. 아마도 재활용 된 행을 업데이트하고 있으므로 해당 이미지가 더 이상 유효하지 않습니다. 내 cwac-thumbnail 프로젝트에서

, 나는 ImageView의 태그에 URL을 넣고 나서 이미지를 업데이트 갈 때 ImageView 아직도 그 태그가 있는지 확인합니다. 그렇게하면 ImageView이 다른 이미지를 필요로 할 경우 잘못된 이미지를 표시하도록 변경하지 않습니다.

+0

고맙습니다. gr8 구현은 여전히 ​​캐시 이미지를 찾고 있습니다. –

관련 문제