3、这是最重要的一部分代码,这就是异步加载图片的一个类,这里我就不解释了,代码中附有注释。代码如下:
- package net.loonggg.util; import java.io.File;
- import java.io.FileInputStream; import java.io.FileNotFoundException;
- import java.io.FileOutputStream; import java.io.InputStream;
- import java.io.OutputStream; import java.net.HttpURLConnection;
- import java.net.URL; import java.util.Collections;
- import java.util.Map; import java.util.Stack;
- import java.util.WeakHashMap; import net.loonggg.test.R;
- import android.app.Activity; import android.content.Context;
- import android.graphics.Bitmap; import android.graphics.BitmapFactory;
- import android.widget.ImageView; /**
- * 异步加载图片类 *
- * @author loonggg *
- */ public class ImageLoader {
- // 手机中的缓存 private MemoryCache memoryCache = new MemoryCache();
- // sd卡缓存 private FileCache fileCache;
- private PicturesLoader pictureLoaderThread = new PicturesLoader(); private PicturesQueue picturesQueue = new PicturesQueue();
- private Map<ImageView, String> imageViews = Collections .synchronizedMap(new WeakHashMap<ImageView, String>());
- public ImageLoader(Context context) { // 设置线程的优先级
- pictureLoaderThread.setPriority(Thread.NORM_PRIORITY - 1); fileCache = new FileCache(context);
- } // 在找不到图片时,默认的图片
- final int stub_id = R.drawable.stub; public void DisplayImage(String url, Activity activity, ImageView imageView) {
- imageViews.put(imageView, url); Bitmap bitmap = memoryCache.get(url);










