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);
}