zoukankan      html  css  js  c++  java
  • Android Volley框架的使用(3)

    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,图片显示的长和宽。运行结果如下:

  • 相关阅读:
    VisualC#的菜单编程
    利用Mutex实现应用程序的单实例运行
    C#下实现动态系统托盘图标
    C#中TreeView组件使用方法初步
    VisualC#中实现窗体间的数据传递之一
    AJAX在VS2005中的简单应用
    LiteORM学习一:EntityObject 设计
    读书笔记:人月神话的博客积极的心态读后感
    LiteORM学习三:查询设计
    LiteORM学习二:数据库设计
  • 原文地址:https://www.cnblogs.com/mstk/p/5192955.html
Copyright © 2011-2022 走看看