package net.dev123.yibo.service.cache.wrap; import java.lang.ref.Reference; import java.lang.ref.WeakReference; import net.dev123.commons.ImageInfo; import android.graphics.Bitmap; public class CachedImage extends Wrap<Bitmap> { private static final int REFERENCE_DIVIDER_SIZE = 120 * 100; private Reference<Bitmap> ref; private ImageInfo imageInfo; public CachedImage(Bitmap bitmap) { setWrap(bitmap); setHit(1); } @Override public Bitmap getWrap() { return ref.get(); } @Override public void setWrap(Bitmap bitmap) { int size = 0; if (bitmap != null) { size = bitmap.getWidth() * bitmap.getHeight(); } if (size > REFERENCE_DIVIDER_SIZE) { this.ref = new WeakReference<Bitmap>(bitmap); } else { this.ref = new WeakReference<Bitmap>(bitmap); } } public ImageInfo getImageInfo() { return imageInfo; } public void setImageInfo(ImageInfo imageInfo) { this.imageInfo = imageInfo; } }