没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
3页
异步加载图片的主要流程是进行判断缓存中是否存在图片,如果存在则直接返回,如果不存在则进行下载并进行缓存。 以下是建立一个异步下载类: 代码如下:/** * User: Tom * Date: 13-5-13 * Time: 下午8:07 */public class AsnycImageLoader { //定义一个HashMap进行存放缓存的Image key为String Value为一个弱引用的一个资源文件 // 图片 为了方便JAVA的回收 private Map<String>> imageCache = null;
资源推荐
资源详情
资源评论
Android 异步加载图片的实例代码异步加载图片的实例代码
异步加载图片的主要流程是进行判断缓存中是否存在图片,如果存在则直接返回,如果不存在则进行下载并进行缓存。
以下是建立一个异步下载类:
代码如下:
/**
* User: Tom
* Date: 13-5-13
* Time: 下午8:07
*/
public class AsnycImageLoader {
//定义一个HashMap进行存放缓存的Image key为String Value为一个弱引用的一个资源文件
// 图片 为了方便JAVA的回收
private Map<String, SoftReference<Drawable>> imageCache = null;
public AsnycImageLoader() {
imageCache = new HashMap<String, SoftReference<Drawable>>();
}
/**
* 加载图片
* <p>imageurl为下载资源的URL,
* ImageCallback当缓存中不存在相关图片时时行网络下载
* 在多线程下要使用Handler进行操作UI 利用回调接口的方式进行更新UI
* </p>
* @param imageUrl
* @param callback
* @return
*/
public Drawable loadDrawable(final String imageUrl, final ImageCallback callback) {
//进行判断ImageCache中是否存在缓存图片
if (imageCache.containsKey(imageUrl)) {
SoftReference<Drawable> softReference = imageCache.get(imageUrl);
if (softReference.get() != null) {
return softReference.get();
}
}
//定义操作UI的Handler
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
callback.imageLoaded((Drawable) msg.obj);
}
};
new Thread(new Runnable() {
@Override
public void run() {
Drawable drawable = loadImageFromUrl(imageUrl);
imageCache.put(imageUrl, new SoftReference<Drawable>(drawable));
Message message = handler.obtainMessage(0, drawable);
handler.sendMessage(message);
}
}).start();
return null;
}
//根据URL地址进行获取资源
资源评论
weixin_38550146
- 粉丝: 0
- 资源: 882
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功