Android编程学习之异步加载图片的方法

2019-12-10 19:58:56于海丽

3、这是最重要的一部分代码,这就是异步加载图片的一个类,这里我就不解释了,代码中附有注释。代码如下:

 

 
  1. package net.loonggg.util;   import java.io.File;  
  2. import java.io.FileInputStream;   import java.io.FileNotFoundException;  
  3. import java.io.FileOutputStream;   import java.io.InputStream;  
  4. import java.io.OutputStream;   import java.net.HttpURLConnection;  
  5. import java.net.URL;   import java.util.Collections;  
  6. import java.util.Map;   import java.util.Stack;  
  7. import java.util.WeakHashMap;   import net.loonggg.test.R;  
  8. import android.app.Activity;   import android.content.Context;  
  9. import android.graphics.Bitmap;   import android.graphics.BitmapFactory;  
  10. import android.widget.ImageView;   /**  
  11. * 异步加载图片类   *  
  12. * @author loonggg   *  
  13. */  public class ImageLoader {  
  14. // 手机中的缓存   private MemoryCache memoryCache = new MemoryCache();  
  15. // sd卡缓存   private FileCache fileCache;  
  16. private PicturesLoader pictureLoaderThread = new PicturesLoader();   private PicturesQueue picturesQueue = new PicturesQueue();  
  17. private Map<ImageView, String> imageViews = Collections   .synchronizedMap(new WeakHashMap<ImageView, String>());  
  18. public ImageLoader(Context context) {   // 设置线程的优先级  
  19. pictureLoaderThread.setPriority(Thread.NORM_PRIORITY - 1);   fileCache = new FileCache(context);  
  20. }   // 在找不到图片时,默认的图片  
  21. final int stub_id = R.drawable.stub;   public void DisplayImage(String url, Activity activity, ImageView imageView) {  
  22. imageViews.put(imageView, url);   Bitmap bitmap = memoryCache.get(url);