安卓开发:Volley加载图片

来源:互联网 发布:如何做好淘宝客推广 编辑:程序博客网 时间:2024/06/13 11:38

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类的构造函数有三个参数,第一个是待显示图片的控件,第二个是在加载图片时显示的等待图片,第三个是加载图片失败时的控件显示的图片

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

1 0