美文网首页
Volley网络框架

Volley网络框架

作者: 大舜_666 | 来源:发表于2017-12-27 09:51 被阅读0次

    Volley 网络通信框架

     * 完全异步 

    * 怎么实现呢 

    * 1:因为Volley是并发的跟Handler里面消息机制一样 

    * 消息队列管理 消息 

    * RequestQueue 管理 Request(StringRequest,ImageRequest)

     * 最后不要忘记add进去 * * Volley请求图片有三种方式 * 1:ImageRequest 

    * 2:ImageLoader 

    * 3:NetWorkImageView

    //get请求数据 

     private void getInfo() {

    c requestQueue = Volley.newRequestQueue(MainActivity.this); 

     //StringRequest.Method.GET 设置为GET请求方式

     StringRequest stringRequest = new StringRequest(StringRequest.Method.GET, url地址, 

    new Response.Listener() { 

     @Override 

     public void onResponse(String response) {

     mText.setText(response + ""); 

     } }, null); 

     requestQueue.add(stringRequest); 

     }


    //Post请求数据  

     private void postInfo() { 

     RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this); 

     StringRequest stringRequest = new StringRequest(Request.Method.POST, mPostUrl, 

    new Response.Listener() { 

     @Override

     public void onResponse(String response) { 

     mText.setText(response); } }, 

    new Response.ErrorListener() { 

     @Override

     public void onErrorResponse(VolleyError error) { 

     } }) { 

     //因为是POST请求,构造方法里面没有参数 他们给封装到了构造方法后边 

     @Override 

     protected MapgetParams() throws AuthFailureError { 

     Mapmap = new HashMap(); 

     map.put("userName", "lxx"); map.put("passWord", "123"); return map; } };

     requestQueue.add(stringRequest); }


    //ImageRequest请求图片 

     private void getImage() { RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);

     //参数1:图片的网址,参数2:成功回调 参数3,4:图片的最大宽和高 参数5:设置图片样式, ImageRequest imageRequest = new ImageRequest(ImageUrls.imageUrls[3], new Response.Listener() {

    @Override

    public void onResponse(Bitmap response) {

    get_Image.setImageBitmap(response);

    }

    }, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() {

    @Override

    public void onErrorResponse(VolleyError error) {

    }

    });

    requestQueue.add(imageRequest);

    }

    //ImageLoader

    private void getImageLoader() {

    RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);

    ImageLoader imageLoader = new ImageLoader(requestQueue, new ImageLoader.ImageCache() {

    @Override

    public Bitmap getBitmap(String url) {

    Log.e("url", url);

    return null;

    }

    @Override

    public void putBitmap(String url, Bitmap bitmap) {

    Log.e("putBitmap", url);

    }

    });

    //设置请求回调  参数1:代表的是回调成功吧图片放到那个组件上,参数2:请求时加载的默认图片,参数3:请求失败的图片

    ImageLoader.ImageListener imageListener = ImageLoader.getImageListener(设置图片的控件ID, R.mipmap.iv_lol_icon3, R.mipmap.iv_lol_icon14);

    imageLoader.get(请求的图片 , imageListener);

    }

    //Volley里面提供一个组件可以用来显示Image  NetWorkImageView

    private void getNetImage() {

    RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);

    ImageLoader imageLoader = new ImageLoader(requestQueue, new ImageLoader.ImageCache() {

    @Override

    public Bitmap getBitmap(String url) {

    Log.e("url", url);

    return null;

    }

    @Override

    public void putBitmap(String url, Bitmap bitmap) {

    Log.e("putBitmap", url);

    }

    });

    mNet.setDefaultImageResId(请求时加载的默认图片);

    mNet.setErrorImageResId(请求失败时的图片);

    mNet.setImageUrl(请求的图片, imageLoader);

    }

    相关文章

      网友评论

          本文标题:Volley网络框架

          本文链接:https://www.haomeiwen.com/subject/ffmxgxtx.html