【Android】LruCache简单用法示例
来源:互联网 发布:单片机中定时器tr管脚 编辑:程序博客网 时间:2024/06/06 01:59
LruCache简单用法总结
LruCache相当于一个Map,存储的是键值对.
public class BitmapCache { private static BitmapCache cache; private LruCache<String, Bitmap> mMemoryCache; public static BitmapCache getInstance() { if (cache == null) { cache = new BitmapCache(); } return cache; } private BitmapCache() { // LruCache通过构造函数传入缓存值,以KB为单位。 int maxMemory = (int) (Runtime.getRuntime().maxMemory()); // 使用最大可用内存值的1/8作为缓存的大小。 int cacheSize = (450 * 16 * 1024); if (cacheSize > (maxMemory / 3)) cacheSize = (maxMemory / 3); mMemoryCache = new LruCache<String, Bitmap>(cacheSize) { @Override protected int sizeOf(String key, Bitmap bitmap) { // 重写此方法来衡量每张图片的大小,默认返回图片数量。 return bitmap.getRowBytes() * bitmap.getHeight(); } @Override protected void entryRemoved(boolean evicted, String key, Bitmap oldValue, Bitmap newValue) { if (!oldValue.isRecycled()) { oldValue.recycle(); } } }; } public void addBitmapToMemoryCache(String key, Bitmap bitmap) { if (getBitmapFromMemCache(key) == null) { mMemoryCache.put(key, bitmap); } } public Bitmap getBitmapFromMemCache(String key) { return mMemoryCache.get(key); } /** * 依据所指定的drawable下的图片资源ID号(可以根据自己的需要从网络或本地path下获取),重新获取相应Bitmap对象的实例 * * @param picPath 图片url * @return Bitmap */ public Bitmap getBitmap(String picPath) { Bitmap bmp = getBitmapFromMemCache(picPath); if (bmp == null) { //从网络下载图片,并将其添加到mMemoryCache中去 //.......................... if (bmp != null) addBitmapToMemoryCache(picPath, bmp); } return bmp; }}
欢迎androider扫描以下二维码关注微信公众号:爱安卓 ,或者搜索微信 : loveandroid321关注
0 0
- 【Android】LruCache简单用法示例
- Android LruCache简单分析
- Android数据存储SharedPreference用法简单示例
- Android内存缓存管理LruCache源码解析与示例
- extern 用法简单示例
- 简单GSON用法示例
- BroadcastReciever简单用法示例
- Android LruCache
- Android LruCache
- android LruCache
- Timer定时器简单用法(Android中示例)
- 【Android】WebVeiw用法示例
- Android MediaStore用法示例
- lruCache的用法
- LruCache的基本用法
- this用法的简单示例
- Mockito的简单用法示例
- 简单示例NSFileManager的用法
- Spinner
- 1.1.2 驱动程序的加载方式
- 面试题7:用两个栈实现队列
- 我的理解--关于jmx
- Android OpenGL ES2.0编程教程系列之绘制图形(三)
- 【Android】LruCache简单用法示例
- Android day5:SVN
- javascript中function的call()函数的使用-----替换当前函数中的当前对象
- 面试题8:旋转数组的最小数字
- RecyclerView 解析(二)
- 跟我一起学习VIM - The Life Changing Editor
- 面试题9:斐波那契数列
- Linux设备驱动程序模型
- word中如何修改脚注上方短横线的格式?