WEB开发网
开发学院手机开发Android 开发 Android实现ListView异步加载图片 阅读

Android实现ListView异步加载图片

 2010-06-19 18:23:00 来源:WEB开发网   
核心提示:try {m = new URL(url);i = (InputStream) m.getContent();} catch (MalformedURLException e1) {e1.printStackTrace();} catch (IOException e) {e.printStackTrace();}Dr

try {

m = new URL(url);

i = (InputStream) m.getContent();

} catch (MalformedURLException e1) {

e1.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

Drawable d = Drawable.createFromStream(i, "src");

return d;

}

public interface ImageCallback {

public void imageLoaded(Drawable imageDrawable, String imageUrl);

}

}

package cn.wangmeng.test;

import java.io.IOException;

import java.io.InputStream;

import java.lang.ref.SoftReference;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.HashMap;

import android.graphics.drawable.Drawable;

import android.os.Handler;

import android.os.Message;

public class AsyncImageLoader {

private HashMap> imageCache;

public AsyncImageLoader() {

imageCache = new HashMap>();

}

public Drawable loadDrawable(final String imageUrl, final ImageCallback imageCallback) {

if (imageCache.containsKey(imageUrl)) {

SoftReference softReference = imageCache.get(imageUrl);

Drawable drawable = softReference.get();

if (drawable != null) {

return drawable;

}

}

final Handler handler = new Handler() {

public void handleMessage(Message message) {

imageCallback.imageLoaded((Drawable) message.obj, imageUrl);

}

};

new Thread() {

@Override

public void run() {

Drawable drawable = loadImageFromUrl(imageUrl);

imageCache.put(imageUrl, new SoftReference(drawable));

上一页  1 2 3 4 5 6 7  下一页

Tags:Android 实现 ListView

编辑录入:coldstar [复制链接] [打 印]
赞助商链接