Volley, volley framework
INetwork request
1. get request data
// 1 create a request queue RequestQueue requestQueue = Volley. newRequestQueue (VolleyActivity. this); // 2 create a request String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api"; StringRequest stringRequest = new StringRequest (url, new Response. listener <String> () {// receives the correct data callback @ Overridepublic void onResponse (String s) {TV _volley_result.setText (s) ;}, new Response. errorListener () {// listener callback after an exception @ Overridepublic void onErrorResponse (VolleyError volleyError) {TV _volley_result.setText ("loading failed" + volleyError );}}); // 3 Add the created request to requestQueue in the Request queue. add (stringRequest );
2. post request data
// 1 create a request queue RequestQueue requestQueue = Volley. newRequestQueue (VolleyActivity. this); // 2 create a post Request String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api"; StringRequest stringRequest = new StringRequest (Request. method. POST, url, new Response. listener <String> () {@ Overridepublic void onResponse (String s) {TV _volley_result.setText (s) ;}}, new Response. errorListener () {@ Overridepublic void onErrorResponse (VolleyError volleyError) {response ("request failed" + volleyError) ;}}) {@ Overrideprotected Map <String, String> getParams () throws AuthFailureError {Map <String, String> map = new HashMap <String, String> (); // map. put ("value1", "param1"); return map ;}}; // 3 Add the post request to the queue requestQueue. add (stringRequest );
3. Request Json data
// 1 create a request queue RequestQueue requestQueue = Volley. newRequestQueue (VolleyActivity. this); // 2 create a request String url = "http://api.m.mtime.cn/PageSubArea/TrailerList.api"; JsonObjectRequest jsonObjectRequest = new JsonObjectRequest (url, null, new Response. listener <JSONObject> () {@ Overridepublic void onResponse (JSONObject jsonObject) {TV _volley_result.setText (jsonObject. toString () ;}}, new Response. errorListener () {@ Overridepublic void onErrorResponse (VolleyError volleyError) {TV _volley_result.setText ("request failed" + volleyError );}}); // 3 Add the created request to requestQueue in the Request queue. add (jsonObjectRequest );
2. image loading
1. ImageRequest
// 1 create a request queue RequestQueue requestQueue = Volley. newRequestQueue (VolleyActivity. this); // 2 the request for creating an image String url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg"; ImageRequest imageRequest = new ImageRequest (url, new Response. listener <Bitmap> () {@ Overridepublic void onResponse (Bitmap bitmap) {// The image iv_volley_result.setImageBitmap (bitmap) ;}, 0, 0, Bitmap. config. RGB_565, new Response. errorListener () {@ Overridepublic void onErrorResponse (VolleyError volleyError) {iv_volley_result.setImageResource (R. drawable. atguigu_logo) ;}}); // 3 Add the request to requestQueue in the Request queue. add (imageRequest );
2. Imageloader loads Images
// Create a request queue RequestQueue requestQueue = Volley. newRequestQueue (VolleyActivity. this); ImageLoader imageLoader = new ImageLoader (requestQueue, new BitmapCache (); // load image String url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg"; ImageLoader. imageListener imageListener = imageLoader. getImageListener (iv_volley_result, R. drawable. atguigu_logo, R. drawable. atguigu_logo); imageLoader. get (url, imageListener );
BitmapCache. java
1 public class BitmapCache implements ImageLoader.ImageCache { 2 private LruCache<String, Bitmap> mCache; 3 4 public BitmapCache() { 5 int maxSize = 10 * 1024 * 1024;// 10m 6 mCache = new LruCache<String, Bitmap>(maxSize) { 7 @Override 8 protected int sizeOf(String key, Bitmap bitmap) { 9 return bitmap.getRowBytes() * bitmap.getHeight();10 }11 };12 }13 14 @Override15 public Bitmap getBitmap(String url) {16 return mCache.get(url);17 }18 19 @Override20 public void putBitmap(String url, Bitmap bitmap) {21 mCache.put(url, bitmap);22 }23 }BitmapCache
3. NetworkImageView
<com.android.volley.toolbox.NetworkImageViewandroid:id="@+id/iv_volley_networkimagview"android:layout_width="200dp"android:layout_height="200dp"android:visibility="gone"></com.android.volley.toolbox.NetworkImageView>
// Create a request queue RequestQueue requestQueue = Volley. newRequestQueue (VolleyActivity. this); // create an ImageloaderImageLoader imageLoader = new ImageLoader (requestQueue, new BitmapCache (); // set iv_volley_networkimagview.setDefaultImageResId (R. drawable. atguigu_logo); iv_volley_networkimagview.setErrorImageResId (R. drawable. atguigu_logo); // load the image String url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg"; iv_volley_networkimagview.setImageUrl (url, imageLoader );