Volley网络框架

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网络框架)