LruCache图片内存缓存(三级缓存——本地内存)

//有一个叫做LruCache类专门用来做图片缓存处理的。它有一个特点,当缓存的图片达到了预先设定的值的时候,那么近期使用次数最少的图片就会被回收掉。



代码实现(封装过后)

public class PhoneCache {

private LruCachemLru;

private Context mContext;

//得到一个可以管理手机内存操作者的类

ActivityManager manager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);

//得到手机内存空间大小,单位是m

int memoryClass = manager.getMemoryClass(); Log.e("memoryClass", memoryClass + "m");

//因为等会我们实例化LRUCache是构造方法里面参数是字节类型所有要吧m转换成b

int maxSize = memoryClass * 1024 * 1024 / 8; Log.e("maxSize", maxSize + "by");

mLru = new LruCache(maxSize) {

@Override

protected int sizeOf(String key, Bitmap value) {

//计算图片的大小

return value.getRowBytes() * value.getHeight();

}

};

}

//存放图片

public void putImage(String url, Bitmap b) {

mLru.put(url, b);

Log.e("存放", "存放成功");

}

//得到图片

public Bitmap getImage(String url) {

return mLru.get(url);

}

你可能感兴趣的:(LruCache图片内存缓存(三级缓存——本地内存))