Volley 的基本用法

2016-05-29  本文已影响175人  努力努力再努力_姜姜

Volley简介

Volley :在2013年Google I/O大会上推出的新的网络通信框架。Volley既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader 一样轻松下载网络上的图片。

Volley特别适合数据量不大但是通信频繁的场景。

Volley提供的功能

Volley中的RequestQueue和Request

StringRequest的用法

private RequestQueue mRequestQueue;
mRequestQueue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest("http://www.baidu.com",
        new Response.Listener<String>() {
            @Override
            public void onResponse(String s) {
                Log.d("TAG", s);
            }
        },
       new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError volleyError) {
        Log.e("TAG",volleyError.getMessage(),volleyError);
    }
});
mRequestQueue.add(stringRequest);

JsonRequest

JsonRequest是一个抽象类,无法直接创建它的实例,只能从他的子类入手。JsonRequest有两个子类JsonObjectRequest和JsonArrayRequest。前者用于请求一段JSON数据,后者用于请求一段JSON数组的。

private RequestQueue mRequestQueue;
mRequestQueue = Volley.newRequestQueue(this);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest("http://www.weather.com.cn/data/cityinfo/101190404.html", null,
        new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject jsonObject) {
                Log.d("TAG", jsonObject.toString());
            }
        }, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError volleyError) {
        Log.e("TAG",volleyError.getMessage(),volleyError);
    }
});
mRequestQueue.add(jsonObjectRequest);

ImageRequest的用法

private RequestQueue mRequestQueue;
mRequestQueue = Volley.newRequestQueue(this);

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

ImageRequest imageRequest = new ImageRequest("http://img5.duitang.com/uploads/item/201409/14/20140914162144_MBEmX.jpeg",
        new Response.Listener<Bitmap>() {
            @Override
            public void onResponse(Bitmap bitmap) {
                imageView.setImageBitmap(bitmap);
                Toast.makeText(MainActivity.this,"suceess",Toast.LENGTH_SHORT).show();

            }
        }, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError volleyError) {
        imageView.setImageResource(R.mipmap.ic_launcher);
        Toast.makeText(MainActivity.this,"error",Toast.LENGTH_SHORT).show();
    }
});
mRequestQueue.add(imageRequest);

ImageLoader的用法

ImageLoader mImageLoader;
mImageLoader = VolleySingleton.getVolleySingleton(this.getApplicationContext()).getImageLoader();
mImageLoader.get(IMAGE_URL,ImageLoader.getImageListener(imageView,R.mipmap.ic_launcher,R.mipmap.failed_image));

NetworkImageView的用法

<com.android.volley.toolbox.NetworkImageView  
  android:id="@+id/network_image_view" 
   android:layout_width="200dp"    
android:layout_height="200dp"  
  android:layout_gravity="center_horizontal"    
/>
ImageLoader mImageLoader ;
NetworkImageView networkImageView;
networkImageView =(NetworkImageView)findViewById(R.id.network_image_view);
mImageLoader = VolleySingleton.getVolleySingleton(this.getApplicationContext()).getImageLoader();
networkImageView.setImageUrl(IMAGE_URL,mImageLoader);
上一篇 下一篇

猜你喜欢

热点阅读