加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Android Jamendo源码 图片缓存达成

发布时间:2021-11-24 21:33:03 所属栏目:教程 来源:互联网
导读:Android Jamendo源码 图片缓存实现 : package com.teleca.jamendo.util; import java.util.WeakHashMap; import android.graphics.Bitmap; /** * Caches downloaded images, saves bandwidth and users * packets * * @author Lukasz Wisniewski */ public

Android Jamendo源码 图片缓存实现 :
 
package com.teleca.jamendo.util;   
  
import java.util.WeakHashMap;   
  
import android.graphics.Bitmap;   
  
/**  
 * Caches downloaded images, saves bandwidth and user's  
 * packets  
 *   
 * @author Lukasz Wisniewski  
 */  
public class ImageCache extends WeakHashMap<String, Bitmap> {   
  
    //WeakHashMap....add by gjican...   
    private static final long serialVersionUID = 1L;   
       
    public boolean isCached(String url){   
        return containsKey(url) && get(url) != null;   
    }   
  
}  
在JamendoApplicatin中定义一个全局的getImageCache()来获得当前应用程序图片缓存  JamendoApplication.getInstance().getImageCache().put(mTaskUrl, bmp);
 
然后在每次下载图片之前先进行判断,看是否缓存里存在此图片,若有则直接显示,否则调用DownloadTast()去下载
 
public String doInBackground(String... params) {   
  
    mTaskUrl = params[0];   
    InputStream stream = null;   
    URL imageUrl;   
    Bitmap bmp = null;   
  
    try {   
        imageUrl = new URL(mTaskUrl);   
        try {   
            stream = imageUrl.openStream();   
            bmp = BitmapFactory.decodeStream(stream);   
            try {   
                if(bmp != null){   
                    JamendoApplication.getInstance().getImageCache().put(mTaskUrl, bmp);   
                    Log.d(JamendoApplication.TAG, "Image cached "+mTaskUrl);   
                } else {   
                    Log.w(JamendoApplication.TAG, "Failed to cache "+mTaskUrl);   
                }   
            } catch (NullPointerException e) {   
                Log.w(JamendoApplication.TAG, "Failed to cache "+mTaskUrl);   
            }   
        } catch (IOException e) {   
            Log.w(JamendoApplication.TAG, "Couldn't load bitmap from url: " + mTaskUrl);   
        } finally {   
            try {   
                if(stream != null){   
                    stream.close();   
                }   
            } catch (IOException e) {}   
        }   
  
    } catch (MalformedURLException e) {   
        e.printStackTrace();   
    }   
    return mTaskUrl;   
}  
 

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读