美文网首页
LruCache图片内存缓存(三级缓存——本地内存)

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

作者: 大舜_666 | 来源:发表于2017-12-27 09:51 被阅读0次

    //有一个叫做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图片内存缓存(三级缓存——本地内存)

          本文链接:https://www.haomeiwen.com/subject/jzkzwxtx.html