ImageLoader 线程池 单例 使用模板
package com.cggame.trillion;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import android.graphics.Bitmap;
import android.widget.ImageView;
public class ImageLoader {
private static ImageLoader imageLoader;
private ExecutorService pool = null;
private static final int MAX_THREAD_COUNT = 5;
private ImageLoader() {
imageLoader = new ImageLoader();
pool = Executors.newFixedThreadPool(MAX_THREAD_COUNT);
}
public static void loadImageAsync(final ImageView imageView, final String path) {
if (imageLoader == null) {
imageLoader = new ImageLoader();
}
imageLoader.pool.execute(new DownLoadThread(imageView, path));
}
private static void downloadImage(final ImageView imageView, String path) {
final Bitmap bitmap = null;
// 开始下载
// bitmap = ...;
// 下载完成
imageView.post(new Runnable() {
@Override
public void run() {
imageView.setImageBitmap(bitmap);
}
});
}
private static class DownLoadThread extends Thread {
private ImageView imageView;
private String path;
public DownLoadThread(ImageView imageView, String path) {
this.imageView = imageView;
this.path = path;
}
@Override
public void run() {
super.run();
downloadImage(imageView, path);
}
}
}