Volley 網(wǎng)絡(luò)通信框架
?* 完全異步?
* 怎么實(shí)現(xiàn)呢?
* 1:因?yàn)閂olley是并發(fā)的跟Handler里面消息機(jī)制一樣?
* 消息隊(duì)列管理 消息?
* RequestQueue 管理 Request(StringRequest贸弥,ImageRequest)
?* 最后不要忘記add進(jìn)去 * * Volley請(qǐng)求圖片有三種方式 * 1:ImageRequest?
* 2:ImageLoader?
* 3:NetWorkImageView
//get請(qǐng)求數(shù)據(jù)?
?private void getInfo() {
c requestQueue = Volley.newRequestQueue(MainActivity.this);?
?//StringRequest.Method.GET 設(shè)置為GET請(qǐng)求方式
?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請(qǐng)求數(shù)據(jù) ?
?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) {?
?} }) {?
?//因?yàn)槭荘OST請(qǐng)求洗做,構(gòu)造方法里面沒(méi)有參數(shù) 他們給封裝到了構(gòu)造方法后邊?
?@Override?
?protected MapgetParams() throws AuthFailureError {?
?Mapmap = new HashMap();?
?map.put("userName", "lxx"); map.put("passWord", "123"); return map; } };
?requestQueue.add(stringRequest); }
//ImageRequest請(qǐng)求圖片?
?private void getImage() { RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);
?//參數(shù)1:圖片的網(wǎng)址,參數(shù)2:成功回調(diào) 參數(shù)3族壳,4:圖片的最大寬和高 參數(shù)5:設(shè)置圖片樣式丢烘, 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);
}
});
//設(shè)置請(qǐng)求回調(diào)? 參數(shù)1:代表的是回調(diào)成功吧圖片放到那個(gè)組件上革为,參數(shù)2:請(qǐng)求時(shí)加載的默認(rèn)圖片至朗,參數(shù)3:請(qǐng)求失敗的圖片
ImageLoader.ImageListener imageListener = ImageLoader.getImageListener(設(shè)置圖片的控件ID, R.mipmap.iv_lol_icon3, R.mipmap.iv_lol_icon14);
imageLoader.get(請(qǐng)求的圖片 , imageListener);
}
//Volley里面提供一個(gè)組件可以用來(lái)顯示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(請(qǐng)求時(shí)加載的默認(rèn)圖片);
mNet.setErrorImageResId(請(qǐng)求失敗時(shí)的圖片);
mNet.setImageUrl(請(qǐng)求的圖片, imageLoader);
}