LruCache

1.官方文档

http://developer.android.com/reference/android/util/LruCache.html 

2.代码如下

复制代码
 1     public LruCache<String,Bitmap> mMemoryCache;
 2 
 3     void init(){
 4         // 获取应用程序最大可用内存
 5         int maxMemory = (int) Runtime.getRuntime().maxMemory();
 6         int cacheSize = maxMemory / 8;
 7         // 设置图片缓存大小为程序最大可用内存的1/8
 8         mMemoryCache = new LruCache<String, Bitmap>(cacheSize) {
 9             @Override
10             protected int sizeOf(String key, Bitmap bitmap) {
11                 return bitmap.getByteCount();
12             }
13         };
14     }
15     /**
16      * 给ImageView设置图片。首先从LruCache中取出图片的缓存,设置到ImageView上。如果LruCache中没有该图片的缓存,
17      * 就给ImageView设置一张默认图片。
18      * @param imageUrl 图片的URL地址,用于作为LruCache的键。
19      * @param imageView 用于显示图片的控件。
20      */
21     private void setImageView(String imageUrl, ImageView imageView) {
22         Bitmap bitmap = mMemoryCache.get(imageUrl);
23         if (bitmap != null) {
24             imageView.setImageBitmap(bitmap);
25         } else {
26             bitmap = getLoacalBitmap(imageUrl);
27             imageView.setImageResource(R.drawable.empty_photo);
28         }
29     }
30     //...
复制代码

 

posted @   f9q  阅读(156)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示