安卓异步图片加载器

异步图片加载器,只百度到了drawable版,现已改造成bitmap版……需要的同学请拿去大笑


public class AsyncImageLoader {


private HashMap<String, SoftReference<Bitmap>> imageCache;
        private  Bitmap pc_loading_fali;


    public AsyncImageLoader(Bitmap bm) {
        imageCache = new HashMap<String, SoftReference<Bitmap>>();
        pc_loading_fali=bm;
       }
    
    public  Bitmap loadBitmap(final String imageUrl, final ImageCallback imageCallback) {
        if (imageCache.containsKey(imageUrl)) {
            SoftReference<Bitmap> softReference = imageCache.get(imageUrl);
            Bitmap bitmap = softReference.get();
            if (bitmap != null) {
                return bitmap;
            }
        }
        final Handler handler = new Handler() {
            public void handleMessage(Message message) {
                imageCallback.imageLoaded((Bitmap) message.obj, imageUrl);
            }
        };
        new Thread() {
            @Override
            public void run() {
            Bitmap bitmap = loadImageFromUrl(imageUrl);
                imageCache.put(imageUrl, new SoftReference<Bitmap>(bitmap));
                Message message = handler.obtainMessage(0, bitmap);
                handler.sendMessage(message);
            }
        }.start();
        return pc_loading_fali;
    }
 
   public static Bitmap loadImageFromUrl(String url) {
       URL m;
       InputStream i = null;
       try {
           m = new URL(url);
           i = (InputStream) m.getContent();
       } catch (MalformedURLException e1) {
           e1.printStackTrace();
       } catch (IOException e) {
           e.printStackTrace();
       }
      
       
       Bitmap bmp=BitmapFactory.decodeStream(i);
 
       return bmp;
   }
  
    public class ImageCallback {                                                          //回调函数,本应该搞成接口的,偷懒搞成了类,使用的时候简单点。
    private ImageView imageView;
   
    public ImageCallback(ImageView iV){
    imageView=iV;
    }
   
   
     public void imageLoaded(Bitmap imageBitmap, String imageUrl){
        imageView.setImageBitmap(imageBitmap); 
                  }  

        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值