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);

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容