博客开篇,奉上郭神讲解的Volley地址
http://blog.youkuaiyun.com/guolin_blog/article/details/17482095 郭霖《Volley》第一卷
http://blog.youkuaiyun.com/guolin_blog/article/details/17482165 郭霖《Volley》第二卷
http://blog.youkuaiyun.com/guolin_blog/article/details/17612763 郭霖《Volley》第三卷
http://blog.youkuaiyun.com/guolin_blog/article/details/17656437 郭霖《Volley》第四卷
一、Volley的概述
Volley是Google 2013年的 I/O大会上发布的一个框架
(优点)Volley是Android上的网络通信库,能使网络通信更快,更简单,更健壮
Volley特别适合数据量不大但是通信频繁的场景: 带图片的列表
(缺点)对于大数据量的网络操作,比如说下载文件等,Volley的表现就会非常糟糕。
二、Volley的各种用法及相对应的参数
这里是所有方法的第一步,创建Volley请求队列的对象:
①RequestQueue mQueue = Volley.newRequestQueue(context);
//添加联网权限
uses-permission android:name=”android.permission.INTERNET” />
1.(1) StringRequest get的用法
②创建一个StringRequest对象
StringRequest stringRequest = new StringRequest("http://www.baidu.com",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("TAG", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("TAG", error.getMessage(), error);
}
});
第一个参数就是目标服务器的URL地址,第二个参数是服务器响应成功的回调,第三个参数是服务器响应失败的回调
③将这个StringRequest对象添加到RequestQueue里面就可以了
mQueue.add(stringRequest);
(2)StringRequest Post请求的方法 详细见郭神博客
2.JsonRequest的用法(与1雷同)
3.ImageRequest的用法
②ImageRequest imageRequest = new ImageRequest(
“http://developer.android.com/images/home/aw_dac.png“,
new Response.Listener() {
@Override
public void onResponse(Bitmap response) {
imageView.setImageBitmap(response);
}
}, 0, 0, Config.RGB_565, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
imageView.setImageResource(R.drawable.default_image);
}
});
第一个参数就是图片的URL地址,这个没什么需要解释的。第二个参数是图片请求成功的回调,这里我们把返回的Bitmap参数设置到ImageView中。第三第四个参数分别用于指定允许图片最大的宽度和高度,如果指定的网络图片的宽度或高度大于这里的最大值,则会对图片进行压缩,指定成0的话就表示不管图片有多大,都不会进行压缩。第五个参数用于指定图片的颜色属性,Bitmap.Config下的几个常量都可以在这里使用,其中ARGB_8888可以展示最好的颜色属性,每个图片像素占据4个字节的大小,而RGB_565则表示每个图片像素占据2个字节大小。第六个参数是图片请求失败的回调,这里我们当请求失败时在ImageView中显示一张默认图片。
mQueue.add(imageRequest);
4.NetworkImageView的用法
(1). 创建一个RequestQueue对象。
(2). 创建一个ImageLoader对象。
(3). 在布局文件中添加一个NetworkImageView控件。
(4). 在代码中获取该控件的实例。
(5). 设置要加载的图片地址。