zoukankan      html  css  js  c++  java
  • 29 三级缓存案例

    LRU:least rencently used 最近最少使用

    LruCache 会在内存不足的杀死最近不常用的资源

    package com.qf.sxy.day30_cache.utils;
    
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.util.Log;
    import android.util.LruCache;
    
    import com.qf.sxy.day30_cache.asynctask.DownLoadImage;
    import com.qf.sxy.day30_cache.interfacecallback.ImageCallBack;
    
    /**
     * Created by sxy on 2016/9/30.
     * 进行缓存和处理图片
     */
    public class LruCacheUtils {
    
        //Lru缓存
        private LruCache<String,Bitmap> cache;
        private  Context context;
        private ImageCallBack imageCallBack;
    
        public LruCacheUtils(Context context,ImageCallBack imageCallBack){
    
            this.context = context;
            this.imageCallBack = imageCallBack;
            //运行时内存的1/8大小
            long maxMemory = Runtime.getRuntime().maxMemory();
            int maxSize =(int)(maxMemory/8);
            cache = new LruCache<String,Bitmap>(maxSize){
    
                //返回图片的大小
                @Override
                protected int sizeOf(String key, Bitmap value) {
                    return value.getByteCount();
                }
            };
        }
    
    
        //获取图片
        public Bitmap getBitmap(String key){
    
            //从缓存中找
            Bitmap bitmap = cache.get(key);
            if (bitmap!=null){
                Log.e("AA","==Lru==");
                return bitmap;
            }else{
                //从Sd找
                bitmap = Utils.getBitmapFromSD(key,context);
                if (bitmap!=null){
                    Log.e("AA","==SD==");
                    //存到缓存
                    cache.put(key,bitmap);
                    return bitmap;
                }else{
                    Log.e("AA","==NET==");
                    //下载图片
                    new DownLoadImage(context,cache,imageCallBack).execute(key);
                }
            }
    
    
            return null;
        }
    
    }
    
  • 相关阅读:
    ASP.NET 4.0的ClientIDMode属性
    关于sql链接超时的问题
    Image.Url 无法使用 Server.MapPath(使用后无论如何也不显示)
    C# 中字符串转换成日期
    Linux RAID 磁盘管理
    脚本编写
    挂载一个NFS共享
    配置NFS服务
    配置多用户SMB挂载
    通过 SMB 共享目录
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152161.html
Copyright © 2011-2022 走看看