안녕하세요.
안드로이드 구글 이미지로더 라이브러리 적용해서
웹에 있는 데이터를 다운받아 리스트뷰에 표시해주고 있는데요.
다운받는 이미지가 좀 사이즈가 커서 리사이징 해서 보여주고 있는데
간혹 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();
제가 이미지 로더 사용하는 방법이나 제 로직에 어떤 문제가 있는건가요?
이 문제때문에 골치아파 죽겠어요.ㅠㅠ