Android Volley框架的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Volley框架的使用相关的知识,希望对你有一定的参考价值。

4. 加载图片

在实际应用中,经常需要从网络上下载并显示图片。Volley也提供了从网络下载图片的几种方法,这里主要介绍两种方法:ImageRequest和ImageLoader。

(1) ImageRequest

ImageRequest和StringRequest、JsonObjectRequest类似,都继承自Request,使用方法也差不多。

    private void imageRequest(){
        ImageRequest imageRequest = new ImageRequest(
                "http://tech.cnr.cn/techit/201411/W020141113510671880058.jpg",
                new Response.Listener<Bitmap>() {
                    @Override
                    public void onResponse(Bitmap response) {
                        imgView.setImageBitmap(response);
                    }
                }, 0, 0, Config.RGB_565, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        imgView.setImageResource(R.drawable.ic_launcher);
                    }
                });
        mQueue.add(imageRequest);
    }

首先创建一个ImageRequest,构造函数的参数包括图片的URL,下载图片成功的回调函数(这里把下载的图片通过一个ImageView控件显示出来),图片显示的长和宽(这里都设置为0,则按照图片原来的大小显示),图片显示的质量,下载图片失败的回调函数(这里显示一张默认图片)。运行结果如下所示:

技术分享

(2) ImageLoader

有时从网上下载图片需要很长的时间,在下载的过程中显示一张图片会比较好,ImageLoader就能够实现这个功能。ImageLoader不是继承自Request的,和前面几个Request的使用略有不同,需要先定义ImageLoader和ImageListener,然后调用ImageLoader的get()方法来获取图片。

定义ImageLoader:

        ImageLoader imageLoader = new ImageLoader(mQueue, new ImageCache() {
            @Override
            public void putBitmap(String url, Bitmap bitmap) {
            }

            @Override
            public Bitmap getBitmap(String url) {
                return null;
            }
        });

其中mQueue是请求队列。

定义ImageListener:

        ImageListener listener = ImageLoader.getImageListener(imgView, 
                R.drawable.ic_launcher, R.drawable.ic_launcher);

其中imgView是显示图片的控件,后面两个参数分别是下载图片过程中显示的图片和下载失败显示的图片,这里为了简单,设置的是同一张图片。

最后,使用ImageLoader的get()方法来下载图片。

        imageLoader.get("http://tech.cnr.cn/techit/201411/W020141113510671880058.jpg",
                listener, 400, 200);

参数包括图片的URL、ImageListener,图片显示的长和宽。运行结果如下:

技术分享

以上是关于Android Volley框架的使用的主要内容,如果未能解决你的问题,请参考以下文章

Android Volley 框架的使用

如何在Android开发中高效使用Volley网络框架

如何在Android开发中高效使用Volley网络框架

035 Android Volley框架进行网络请求

Android Volley框架的使用

android-----Volley框架使用ImageLoader加载图片源码分析