Jamendo 代码Image缓存实现:
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;
}
分享到:
相关推荐
"Jamendo源码"指的是开源音乐平台Jamendo的源代码,这个平台允许用户免费收听、分享和下载独立创作的音乐。源代码是软件开发的基础,它包含了程序的所有指令,让开发者可以理解软件的工作原理,并对其进行修改、扩展...
以下是关于Jamendo播放器源码的一些关键知识点: 1. **开源软件**:Jamendo是一个遵循特定开源许可协议的项目,这意味着源代码是公开的,任何人都可以查看、使用、修改和分发。这种开放性促进了软件的持续改进和...
Android应用源码安卓源码(172个合集),可以做为你的学习参考。 365MobileSecretary v1.0.6(365手机助手AIDL) 888个经典 Logo.rar AdXmpp(Openfire+asmack+spark) .zip AidlDemo(简单aidl的例子) aidl跨进程调用....
通过分析jamendo的源码,我们可以学习到如何在Android平台上构建一个功能完善的音乐应用,理解其背后的设计理念和技术实现。 首先,jamendo的源码结构清晰,遵循了MVC(Model-View-Controller)设计模式,这使得...
本篇文章将深入探讨名为"jamendo"的Android应用源码,帮助开发者理解其背后的实现机制,提升自己的Android编程技能。 **1. 应用框架与架构** jamendo作为一款开源音乐播放应用,很可能是基于MVP(Model-View-...
这个源码库为我们提供了一个宝贵的实践和学习机会,让我们可以了解一个完整的Android应用是如何构建的,以及它是如何与服务器交互、处理音频流、实现用户界面等。 首先,我们可以从源码中学习到Android的项目结构。...
这个源码分析将深入探讨jamendo的内部运作机制,包括其在Android平台上的实现和文档内容。 首先,让我们关注"android"这一关键词。Jamendo的Android版本是一个专为移动设备设计的应用程序,它利用了Android SDK来...
本文将围绕"jamendo_Android"这一开源项目,深入探讨其源码结构、设计理念以及实现技术,帮助读者更好地理解和学习Android应用开发。 首先,"jamendo_Android"是一个专门为Android平台设计的开源音乐播放应用,它...
通过分析jamendo在Android源码中的实现,我们可以学习到如何将第三方服务与Android系统无缝对接,以及如何设计和实现一个音乐播放应用。 在源码中,jamendo可能包含以下几个主要部分: 1. **服务组件(Service)**...
Android应用源码之jamendo-开源在线音乐.zip项目安卓应用源码下载Android应用源码之jamendo-开源在线音乐.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
《Android应用源码解析:深度探索jamendo开源在线音乐项目》 在移动设备的世界里,Android应用程序以其开放性和灵活性赢得了广大开发者和用户的喜爱。而开源项目更是为开发者提供了丰富的学习资源,它们展示了实际...
【Android源码解析——jamendo开源在线音乐应用】 在安卓(Android)开发领域,了解和研究源码是提升技能、优化应用性能的重要途径。这里我们关注的是“jamendo”项目,一个开源的在线音乐应用程序,它允许用户免费...
Android应用源码之jamendo.zip项目安卓应用源码下载Android应用源码之jamendo.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
"telecapoland-jamendo-android-6cd07fb(国外开源音乐播放器)"是一个音乐播放应用,它涵盖了音频播放、流媒体服务集成和音乐库管理等功能,对于想要开发音乐应用的开发者提供了丰富的学习材料。 最后,"仿Siri的...
Jamendo公司的开源代码,大家可以学习一下里面的处理方式
本篇文章将深入探讨“telecapoland-jamendo-android-6cd07fb”这一国外开源音乐播放器的安卓源码,帮助读者理解其设计思路、架构布局以及关键功能的实现。 首先,"telecapoland-jamendo-android"是一款基于Android...
《安卓Android源码分析——以telecapoland-jamendo-android-6cd07fb开源音乐播放器为例》 在移动操作系统领域,安卓Android以其开放性和灵活性吸引了大量的开发者和用户。对于开发者来说,深入理解Android源码是...
Android提供了SQLite数据库用于本地数据存储,telecapoland-jamendo-android可能会利用SQLite来保存用户的播放历史、收藏等信息,或者缓存部分音乐文件以提高播放速度。 4. **服务与广播接收器**:为了实现后台播放...