그리드 뷰로 사진들을 뿌려주는데요..
스크롤을 내렸다가 올리면 기존에 로드된 이미지들이 다시 로드 되는 현상은
어디 부분을 수정해야 할까요?
한번 로드 된 이미지는 다시 로드 되지 않도록 하고 싶어요..
참고로..SD카드에 있는 이미지를 로드합니다.
옵션 설정 부분..
this.options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_photo_loading_white_24dp)
.showImageForEmptyUri(R.drawable.ic_photo_empty_white_24dp)
.showImageOnFail(R.drawable.ic_photo_fail_white_24dp)
.cacheInMemory(true)
.cacheOnDisk(true)
.considerExifParams(true)
.build();
어댑터의 GetView
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
final ViewHolder gridViewHolder;
if(convertView == null){
view = mGalleryActivity.getLayoutInflater().inflate(R.layout.gallery_thumbnail, parent, false);
gridViewHolder = new ViewHolder();
gridViewHolder.imageView = (ImageView) view.findViewById(R.id.thumbnail_image);
gridViewHolder.imageView.setMaxWidth(80);
gridViewHolder.imageView.setMaxHeight(80);
view.setTag(gridViewHolder);
}else{
gridViewHolder = (ViewHolder) view.getTag();
}
//UIL 라이브러리 사용
ImageLoader.getInstance().displayImage(mThumbPaths[position], gridViewHolder.imageView, options, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String s, View view) {
Dlog.d("onLoadingStarted");
((ImageView) view).setScaleType(ImageView.ScaleType.CENTER);
}
@Override
public void onLoadingFailed(String s, View view, FailReason failReason) {
Dlog.d("onLoadingFailed");
((ImageView)view).setScaleType(ImageView.ScaleType.CENTER);
}
@Override
public void onLoadingComplete(String s, View view, Bitmap bitmap) {
Dlog.d("onLoadingComplete");
((ImageView)view).setScaleType(ImageView.ScaleType.CENTER_CROP);
}
@Override
public void onLoadingCancelled(String s, View view) {
Dlog.d("onLoadingCancelled");
((ImageView)view).setScaleType(ImageView.ScaleType.CENTER);
}
});