Volley 应用

Posted 张兮兮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Volley 应用相关的知识,希望对你有一定的参考价值。

* Volley是android平台的网络通信库:更快,更简单,更健壮
* Volley提供的功能:
* 1:JSON,图片(异步)
* 2.网络请求排序
* 3.网络请求的优先级处理
* 4.缓存
* 5.多级别的取消请求
* 6.与Activity生命周期联动

 适合:频繁的,数据量比较小的请求

//Volley实现JSON字符串请求

 1 //Volley实现JSON字符串请求
 2 //最小sdk8.0以上
 3 public class MainActivity extends Activity {
 4 
 5     @Override
 6     protected void onCreate(Bundle savedInstanceState) {
 7         super.onCreate(savedInstanceState);
 8         setContentView(R.layout.fragment_main);
 9         getJSONVolley();
10 
11     }
12 
13     // 获取json字符串
14     public void getJSONVolley() {
15 
16         RequestQueue requestQueue = Volley.newRequestQueue(this);
17 
18         String JSONDateUrl = "http://www.imooc.com/api/teacher?type=4&num=30";
19         JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(
20                 Request.Method.GET, JSONDateUrl, null,
21                 new Response.Listener<JSONObject>() {
22                     public void onResponse(JSONObject response) {
23 
24                         System.out.println("--->>response:" + response);
25                     }
26                 }, new Response.ErrorListener() {
27                     public void onErrorResponse(
28                             com.android.volley.VolleyError error) {
29 
30                         System.out.println("--->>error");
31                     }
32                 });
33  
34         requestQueue.add(jsonObjectRequest);
35     }
36 }

 

 

 

 

 1 ////使用Volley从服务器下载图片
 2 //最小sdk8.0以上
 3 public class MainActivity extends Activity {
 4     ImageView imageView;
 5 
 6     @Override
 7     protected void onCreate(Bundle savedInstanceState) {
 8         super.onCreate(savedInstanceState);
 9         setContentView(R.layout.fragment_main);
10         imageView = (ImageView) findViewById(R.id.imageView1);
11         loadImageVolley();
12 
13     }
14 
15     // 使用Volley从服务器下载图片
16     // http://localhost:8080/web/Sky.jpg
17     public void loadImageVolley() {
18         String imageurl = "http://172.16.166.195:8080/web/Sky.jpg";
19         RequestQueue requestQueue = Volley.newRequestQueue(this);
20         final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>(
21                 20);
22         ImageCache imageCache = new ImageCache() {
23 
24             @Override
25             public void putBitmap(String url, Bitmap bitmap) {
26                 // TODO Auto-generated method stub
27                 lruCache.put(url, bitmap);
28             }
29 
30             @Override
31             public Bitmap getBitmap(String url) {
32                 // TODO Auto-generated method stub
33                 return lruCache.get(url);
34             }
35         };
36         ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache);
37         ImageListener listener = imageLoader.getImageListener(imageView,
38                 R.drawable.ic_launcher, R.drawable.ic_launcher);
39         imageLoader.get(imageurl, listener);
40 
41     }
42 }

 1 //使用 NetWorkImageView 完成图片加载
 2 //最小sdk8.0以上
 3 public class MainActivity extends Activity {
 4     NetworkImageView imageView;
 5 
 6     @Override
 7     protected void onCreate(Bundle savedInstanceState) {
 8         super.onCreate(savedInstanceState);
 9         setContentView(R.layout.fragment_main);
10         imageView = (NetworkImageView) findViewById(R.id.imageView1);
11         NetWorkImageViewVolley();
12 
13     }
14 
15     public void NetWorkImageViewVolley() {
16         String imageurl = "http://172.16.166.195:8080/web/Sky.jpg";
17         RequestQueue requestQueue = Volley.newRequestQueue(this);
18         final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>(
19                 20);
20         ImageCache imageCache = new ImageCache() {
21 
22             @Override
23             public void putBitmap(String url, Bitmap bitmap) {
24                 // TODO Auto-generated method stub
25                 lruCache.put(url, bitmap);
26             }
27 
28             @Override
29             public Bitmap getBitmap(String url) {
30                 // TODO Auto-generated method stub
31                 return lruCache.get(url);
32             }
33 
34         };
35         ImageLoader imageLoader = new ImageLoader(requestQueue, imageCache);
36 
37         imageView.setTag("url");
38         imageView.setImageUrl(imageurl, imageLoader);
39 
40     }
41 }

 

以上是关于Volley 应用的主要内容,如果未能解决你的问题,请参考以下文章

Fragment、Volley 和 RecyclerView

如何在 Android Volley 中判断 TLS 版本

片段内的自定义列表不起作用

使用volley时如何保持进度条状态?

Android应用开发:网络工具——Volley

不要在片段中显示列表视图项