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字节
* */
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字节
* */