安卓开发:Volley加载图片

Volley是非常好的开源框架。下载地址:点击下载
Volley强大的地方在于不仅能发送http请求,请求json数据【详情请见:点击查看】还能加载图片,避免OOM【缓存技术,out of memory】。

与发送http请求类似,需要先新建一个RequestQueue,之后再创建ImageLoader实例,用于缓存设置,之后再创建ImageListener类用于监听结果,最后再调用ImageLoader的get()方法加载图片。

例子:

RequestQueue requestQueue = Volley.newRequestQueue(this);
ImageLoader imageLoader = new ImageLoader(requestQueue, new BitmapCache());
ImageLoader.ImageListener imageListener = ImageLoader.getImageListener(imageView, R.drawable.wait, R.drawable.failed);      
imageLoader.get("http://game.chinanews.com/uploadfile/2011/0714/20110714022709842.jpg", imageListener);

BitmapCache类:

public class BitmapCache implements ImageLoader.ImageCache {
    private LruCache<String, Bitmap> lruCache;
    public BitmapCache() {
        int maxSize = 10 * 1024 * 1024;
        lruCache = new LruCache<String, Bitmap>(maxSize) {
            protected int sizeOf(String key, Bitmap bitmap) {
                return bitmap.getRowBytes() * bitmap.getHeight();
            }
        };
    }
    @Override
    public Bitmap getBitmap(String s) {
        return lruCache.get(s);
    }
    @Override
    public void putBitmap(String s, Bitmap bitmap) {
        lruCache.put(s, bitmap);
    }
}

其中:ImageListener类的构造函数有三个参数,第一个是待显示图片的控件,第二个是在加载图片时显示的等待图片,第三个是加载图片失败时的控件显示的图片

效果如下:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/new_Aiden/article/details/50918657