Volley 基础使用以及常用类

volley 子弹
    1.是在2013年google的i/0大会上出现的


特点: 
     优点:通常用来执行数据量小,频繁的网络请求
     缺点:  不能用来做数据量大的网络下载操作






1.请求String
     1.volley框架导入到项目中
        compile 'eu.the4thfloor.volley:com.android.volley:2015.05.28'
   步骤:
      0.开启网络权限


      1.获得请求队列
      requestQueue = Volley.newRequestQueue(MainActivity.this);
      2.声名请求队列并设置参数
   /*   int method, 网络请求方式, 如:get,post,delete
java.lang.String url,   网络请求地址
com.android.volley.Response.Listener<java.lang.String> listener,  网络请求成功的监听
com.android.volley.Response.ErrorListener errorListener  网络请求错误,异常的监听
*/
stringRequest = new StringRequest
      3.添加到请求队列中
requestQueue.add(stringRequest);


    


2.取消该request的请求
    0.给request设置标记
      //给请求设置一个tag
        stringRequest.setTag("MainActivity");


     1.//取消当前页面(tag)的网络请求
        requestQueue.cancelAll("MainActivity");
        //取消自己
        //stringRequest.cancel();


3.jsonRequest,jsonArrayReuqust 


4.自定义request,继承request  (注意数据泛型T)
     0.定义构造方法,传入请求网络需要的参数,通过父类去请求网络


     1.解析网络请求的响应结果,将  字节数组类型的数据转换成自己想要的 T  (通常是java bean数据模型)
@Override
    protected Response<QsbkBean> parseNetworkResponse(NetworkResponse response) {
        //更具json数据获得qsbk对象


        Gson gson = new Gson();
        QsbkBean qsbkBean = null;
        try {
            qsbkBean = gson.fromJson(new String(response.data, HttpHeaderParser.parseCharset(response.headers)), QsbkBean.class);
        } catch (UnsupportedEncodingException e) {
            qsbkBean = gson.fromJson(new String(response.data),QsbkBean.class);
        }
        return Response.success(qsbkBean, HttpHeaderParser.parseCacheHeaders(response));
    }




     2.deliverResponse(T response)  分发响应结果(处理监听)
         调用请求成功的监听器
         mListener.onResponse(response);






5.post请求  
    1.设置请求方式为post
    2.传入参数
       重写了  protected Map<String, String> getParams() throws AuthFailureError {
        将需要传入的参数以map的形式返回,  key 做为属性名   value作为值
   


6.图片请求
   1.imageRequest 如同Stringrequest 
/*     String url,  图片的网络地址
        Response.Listener<Bitmap> listener,  请求成功的监听器
        int maxWidth,  图片的最大宽度
        int maxHeight,  图片的最大高度 ,  请求完图片会自动的限制在该范围中,  0,0 表示图片不进行处理
        android.widget.ImageView.ScaleType scaleType,  图片的缩放类型
        Bitmap.Config decodeConfig,   图片的每个点需要多少字节来存储
        Response.ErrorListener errorListener  错误,异常的回调*/


     


        ImageRequest imageRequest = new ImageRequest("http://e.hiphotos.baidu.com/image/pic/item/14ce36d3d539b600be63e95eed50352ac75cb7ae.jpg"
                , new Response.Listener<Bitmap>() {
            @Override
            public void onResponse(Bitmap response) {
                image.setImageBitmap(response);
            }
        }, 0, 0, ImageView.ScaleType.CENTER_CROP, Bitmap.Config.RGB_565, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {


            }
        });
   2.imageloader(可以设置缓存)
       1.获取imageloader 
          参数1 : 请求队列 
 参数2:  实现imageCache接口    用 lrucache缓存做内存缓存


      2.设置监听
         通过imageloader来设置监听


  ImageLoader.ImageListener imagelistener = imageLoader.
  getImageListener(viewHolder.imgIcon,R.mipmap.ic_launcher,R.mipmap.ic_launcher);
参数1: 需要展示图片的imageview   , 2.默认图片  3.错误图片

     3.放入请求队列
       参数1:path  网络地址   参数2: 请求成功的监听
imageLoader.get(path,imagelistener);


   3.networkImageview


7.Bitmap.Config decodeConfig,   图片的每个点需要多少字节来存储
   /* Bitmap.Config.ARGB_4444    00000000   每一个值用4位来表示   总共占据2字节
       * Bitmap.Config.ARGB_8888      每一个值用8位来表示,  总共占据4个字节
       * Bitmap.Config.RGB_565      R 用5位来表示   G-6  B-5   总共占据2字节
       * */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值