마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

구글 이미지로더에서 Mark has been invalidated...가 발생을 합니다.

0 추천

안녕하세요.

안드로이드 구글 이미지로더 라이브러리 적용해서

웹에 있는 데이터를 다운받아 리스트뷰에 표시해주고 있는데요.

다운받는 이미지가 좀 사이즈가 커서 리사이징 해서 보여주고 있는데 

간혹 java.io.IOException: Mark has been invalidated. 이런 에러를 뿜으면서

이미지를 다운받지 못해 갱신이 안될때가 있습니다.

어떤 특정구간인지는 못찾고..

간헐적으로 그러는데 혹시 이런거 겪어 보신 분 계신가요?

아래는 이미지로더써서 이미지 다운로드 받고 이미지 리사이징 후에 이미지뷰에 적용하는 부분입니다.

ImageSize targetSize = new ImageSize(200, 150);
try {
imageLoader.loadImage(image_path, targetSize, options, new SimpleImageLoadingListener() {
/* (non-Javadoc)
* @see
com.nostra13.universalimageloader.core.assist.SimpleImageLoadingListener#onLoadingComplete(java.lang.String,
android.view.View, android.graphics.Bitmap)
*/
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
// TODO Auto-generated method stub 
       final Bitmap bit = Bitmap.createScaledBitmap(loadedImage, 200, 150, true); //이미지 크기 변환
holder.thum_img.setImageBitmap(bit);
notifyDataSetChanged();
  }
});

 

아래는 이미지로더에 적용한 옵션값입니다.

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
.threadPriority(Thread.NORM_PRIORITY - 2)
.memoryCacheSize(2 * 1024 * 1024) // 2 Mb
.denyCacheImageMultipleSizesInMemory()
.discCacheFileNameGenerator(new Md5FileNameGenerator())
.tasksProcessingOrder(QueueProcessingType.LIFO)
.writeDebugLogs() // Remove for release app
.build();
// Initialize ImageLoader with configuration.
ImageLoader.getInstance().init(config);
 
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.no_img)
.showImageForEmptyUri(R.drawable.ic_empty)
.showImageOnFail(R.drawable.ic_error)
.cacheInMemory(true)
.cacheOnDisc(true)
.build();
 
제가 이미지 로더 사용하는 방법이나 제 로직에 어떤 문제가 있는건가요?
 
이 문제때문에 골치아파 죽겠어요.ㅠㅠ
갸아악 (21,260 포인트) 님이 2013년 12월 18일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...