Volley的简单使用

本文介绍了Volley,Google I/O大会上发布的网络通信框架,适用于频繁的小数据量通信。内容包括Volley的简单使用,如StringRequest、JsonRequest和ImageRequest的步骤及示例。StringRequest用于字符串数据,JsonRequest支持GET和POST方式处理JSON数据,ImageRequest用于加载网络图片,并详细说明了参数设置。
摘要由CSDN通过智能技术生成

Volley简介

Volley是2013年Google I/O大会上推出的一个新的网络通信框架,非常适合数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作,Volley就不太合适了。

简单使用

不管是StringRequest、JsonRequest还是ImageRequest,都是以下三步曲:

  1. 创建一个RequestQueue对象
  2. 创建一个Request对象(StringRequest、JsonObjectRequest、ImageRequest)
  3. 将Request对象添加到RequestQueue里面。
StringRequest的使用
		String url = "http://www.baidu.com";
		// 第一步
        RequestQueue requestQueue = Volley.newRequestQueue(this);
        // 第二步
        StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
            @Override
            public void onResponse(String str) {
                // 访问成功的监听,str是返回的数据
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
            // 访问失败的监听
            }
        });
        // 第三步
        requestQueue.add(stringRequest);
JsonRequest的使用

JsonRequest有两种方式,一种是GET方式,不需要向服务器返回数据,一种是POST方式,需要向服务器返回数据。

GET方式

 		RequestQueue requestQueue = Volley.newRequestQueue(this);
        JsonObjectRequest jor = new JsonObjectRequest(Request.Method.GET,url, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject jsonObject) {
                // 访问成功的监听,jsonObject是返回的数据
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                // 访问失败的监听
            }
        });
        requestQueue.add(jor);

POST方式

		RequestQueue requestQueue = Volley.newRequestQueue(this);
		// 准备要返回的JSON对象
        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("user", "hello");
            jsonObject.put("pwd", "123456");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        JsonObjectRequest jor = new JsonObjectRequest(Request.Method.POST,url, jsonObject, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject jsonObject) {
                // 访问成功的监听,jsonObject是返回的数据
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                // 访问失败的监听
            }
        });
        requestQueue.add(jor);

url是访问的网址

其实还有一个默认的规则,第一个参数可以不指定,如果你返回JSON对象,默认就是POST方式,如果返回的是null,默认就是GET方式。

ImageRequest的使用
		RequestQueue requestQueue = Volley.newRequestQueue(this);
        ImageRequest imageRequest = new ImageRequest(url, new Response.Listener<Bitmap>() {
            @Override
            public void onResponse(Bitmap bitmap) {
                // 访问成功的监听,bitmap是返回的图片
            }
        }, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError volleyError) {
                // 访问失败的监听
            }
        });
        requestQueue.add(imageRequest);

ImageRequest的构造函数接收6个参数,分别是:

  1. 图片的URL地址
  2. 图片请求成功的回调
  3. 图片的宽度
  4. 图片的高度
  5. 图片的颜色属性
  6. 图片请求失败的回调

图片的颜色属性:
Bitmap.Config下的几个常量都可以使用,其中ARGB_8888可以展示最好的颜色属性,每个图片像素占据4个字节的大小,而RGB_565则表示每个图片像素占据2个字节大小。

图片的宽度或高度:
如果指定的网络图片的宽度或高度大于指定的最大值,则会对图片进行压缩,指定成0的话就表示不管图片有多大,都不会进行压缩。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值