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; } (编辑:宁德站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |