안드로이드, BitmapLruCache 구현하기. for Volley |
Volley Tutorial 을 보면 NetworkImageView 를 사용할 떄 ImageCache를 대입하는 부분이 있는데,
아이러니하게도 Volley library 에서는 기본적인 ImageCache 를 제공하지 않는다.
그렇다면 우리가 구현해주어야 한다는 것인데, "그나마 친절하게도" Volley Library 에서 ImageCache 라는 interface 는 제공해준다. 이 녀석을 구현하기만 하면 된다.
import android.graphics.Bitmap;
import android.support.v4.util.LruCache;
import com.android.volley.toolbox.ImageLoader;
public class BitmapLruCache extends LruCache<String, Bitmap> implements ImageLoader.ImageCache{
private static int getDefaultLruCacheSize() {
int maxMemory = (int) (Runtime.getRuntime().maxMemory() / 1024);
int cacheSize = maxMemory / 8;
return cacheSize;
}
public BitmapLruCache(){
super( getDefaultLruCacheSize() );
}
public BitmapLruCache(int maxSize) {
super(maxSize);
}
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes() * value.getHeight() / 1024;
}
@Override
public Bitmap getBitmap(String url) {
return get( url );
}
@Override
public void putBitmap(String url, Bitmap bitmap ) {
put( url, bitmap );
}
}
도움이 되셨길~
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] FragmentPagerAdapter? FragmentStatePagerAdapter 사용도 고려해보자. (0) | 2013.08.07 |
---|---|
[android] ContactsContract ( 주소록 ) 사용하기 어렵당. ㅠ (2) | 2013.08.06 |
[Java] SparseArray 뭐하는 녀석이야? (0) | 2013.08.06 |
[Java] 형 변환에 대한 깊숙한 이야기. (0) | 2013.08.05 |
[android] extrernal image file path <-> MediaStore Uri ( conversion ) (0) | 2013.08.05 |
댓글