Android(安卓)LruCache内存缓存图片
16lz
2021-01-25
1,实现效果
-
软引用,进行内存缓存,在版本更改后,软引用4.0以后很快会被回收,没有起到缓存的效果
2,实现逻辑
-
LruCache需要分配一些内存空间,一般是最大内存的/8
package com.xiaoshaui.zhbj96.utils.pic;import android.graphics.Bitmap;import android.support.v4.util.LruCache;public class MemCacheUtils { LruCache mLruCache;// 存图片 public MemCacheUtils() { super(); long maxMemory = Runtime.getRuntime().maxMemory();// 当前进程的最大缓存 // Runtime.getRuntime().totalMemory();//当前申请的内存大小 // Runtime.getRuntime().freeMemory();//当前申请的内存 剩余的 // 参1 给缓存分配内存 一般总内存的/8 mLruCache = new LruCache((int) (maxMemory / 8)) { @Override protected int sizeOf(String key, Bitmap value) { int byteCount = value.getByteCount(); System.out.println("byteCount=" + byteCount); // int byteCount = value.getRowBytes() * value.getHeight(); return byteCount; } }; } public void setCache(String url, Bitmap bimBitmap) { mLruCache.put(url, bimBitmap); } public Bitmap getCache(String url) { Bitmap bitmap = null; bitmap = mLruCache.get(url); return bitmap; }}
更多相关文章
- 浅析Context及可能带来的内存泄漏问题
- android修改虚拟内存(方法)
- Android(安卓)Studio - local path doesn't exist
- Handler 引起的内存泄漏
- 源码分析--xutil3 网络源码分析
- Android(安卓)Studio优化内存配置
- Android之内嵌PDF预览
- 【Android】Android清除本地数据缓存代码(这些功能很强大不要乱
- Handler内存泄露原理及解决方法