android LruCache

1 定义:  

   private LruCache<String, Bitmap> mMemoryCache;  


2 初始化:

     public  void initmem(){  
       //获取系统分配给每个应用程序的最大内存,每个应用系统分配32M  
       int maxMemory = (int) Runtime.getRuntime().maxMemory();    
       int mCacheSize = maxMemory / 8;  
       //给LruCache分配1/8 4M  
       mMemoryCache = new LruCache<String, Bitmap>(mCacheSize){  
 
           //必须重写此方法,来测量Bitmap的大小  
           @Override  
           protected int sizeOf(String key, Bitmap value) {  
               return value.getRowBytes() * value.getHeight();  
           }  
             
       };  
         
      // fileUtils = new FileUtils(context);  
   }  

3 在内存中查找

               final String subUrl = url.replaceAll("[^\\w]", "");  
          //  Bitmap bitmap = showCacheBitmap(subUrl);  
            if (mMemoryCache.get(subUrl)!=null)
            {
            bitmap= mMemoryCache.get(subUrl);
            }
            else
            {
           
            byte[] bitmapBytes = new FlickrFetchr().getUrlBytes(url);
           // final Bitmap bitmap = BitmapFactory
          //  .decodeByteArray(bitmapBytes, 0, bitmapBytes.length);
            bitmap = BitmapFactory
                    .decodeByteArray(bitmapBytes, 0, bitmapBytes.length);
            Log.i(TAG,"Bitmap created");
            mMemoryCache.put(subUrl, bitmap);  
           // 
            }

4 释放:

         this.mMemoryCache.evictAll();   //释放LruCache的缓存


  

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值