0

전화 번호부의 특정 연락처를 보여주는 ListView가 있습니다. 이 https://stackoverflow.com/a/10235381/1809507을 Cache 클래스로 사용하고 AsyncTask를 사용합니다.AsyncTask 이미지 문제가있는 Android ListView

연락처에 사진이 없으면 기본값을 사용합니다. 기본 XML을 XML 내부에 설정했습니다. 다음 방법을 사용하여 연락처 사진이있는 경우에만이를 설정하고 목록보기를 스크롤하여 사진이없는 연락처는 다른 연락처 사진을 가져옵니다. retrieveContactPhoto 메서드에서 기본 사진을 비트 맵으로 얻고 null이 아니며 imageview에 할당하면 멋지게 작동하지만 같은 기본 사진을 여러 번 캐시하기 때문에 사진이없는 대화 상대가 많을 때 좋은 해결책이 아닌 것 같습니다. 또는 나는 틀린가? https://github.com/nostra13/Android-Universal-Image-Loader

를 또는, 하나는 더 "구글"할 수 있습니다 :

@Override 
    protected Bitmap doInBackground(Void... args) 
    { 
     Bitmap bm = HelpClasses.retrieveContactPhoto(contextInput, HelpClasses.fetchContactIdFromPhoneNumber(contextInput, phoneNumber)); 
     if(bm != null) 
     { 
      synchronized (cache) 
      { 
       cache.put(phoneNumber, bm); 
      } 

     } 
     return bm; 
    } 

@Override 
protected void onPostExecute(Bitmap result) 
{ 
    if(mView != null && result != null) 
    { 
     mView.setImageBitmap(result); 
    } 
} 
+0

http://samir-mangroliya.blogspot.in/p/android-read-contact-and-display-in.html –

+0

내 코드에서 볼 수 있듯이 fetchContactIdFromPhoneNumber 메소드를 이미 가지고 있으며 연락처에서 retrieveContactPhoto 신분증. – edoniti

답변

0

난 당신이 라이브러리를 찾고 있습니다 생각 https://code.google.com/p/libs-for-android/wiki/ImageLoader

당신이 가져 오는 바인딩 모든 이미지를 남길 수 있습니다, 캐싱 물건 도서관으로.

+0

고마워,하지만이 라이브러리는 기본 사진도 캐시합니다. 내가 불필요하다고 생각하는 것은 XML의 기본 사진을 캐시 또는 sdcard에서 다시 할당하지 못하게하려는 것입니다. – edoniti

+0

기본 이미지는 메모리에 캐시되고 모든 이미지보기는 동일한 인스턴스를 나타냅니다. – Robin

관련 문제