Android网络请求框架Volley的使用

来源:互联网 发布:游戏视频后期制作软件 编辑:程序博客网 时间:2024/05/17 07:15

      Volley是Google在2013年推出的一款网络请求的框架,主要解决数据量小但是请求频繁的情况,对于大流量的比如文件上传下载,流媒体等则表现不佳。一般用于json获取,图片加载。

     要想使用volley,首先需要jar包,jar包和源码下载地址:http://download.csdn.net/detail/u013926110/8895911

   1.请求json数据

 1.1实例化一个RequestQueue

1.2new一个JsonObjectRequest(method, url, jsonRequest, listener, errorListener);5个参数,第一个请求的方法,第二个请求地址,第三个get则为null,post就传值,第四个response的listener,第五个错误的监听。

1.3将jsonObjectRequest加入queue中

<span style="font-size:14px;">RequestQueue queue = Volley.newRequestQueue(this);String jsonurl = "http://www.weather.com.cn/adat/sk/101010100.html";JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, jsonurl, null,new Response.Listener<JSONObject>() {@Overridepublic void onResponse(JSONObject response) {Log.i("--response", response.toString());}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error) {Log.i("--error", "error");}});queue.add(jsonObjectRequest);</span>
   2.异步加载图片

2.1实例化一个RequestQueue

2.2实例化一个LruCache

2.3new一个imageCache并实现putBitmap与getBitmap

2.4创建一个imageloader,传入RequsetQueue和imageCache

2.5imageloader得到一个监听,分别传入imageview的对象,默认的显示图片id,错误时显示的图片id,并返回一个listener

2.6imageloader的get方法传入图片的url,和listener

<span style="font-size:14px;">String url = "http://d.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=456a5f3cfffaaf5184b689b9bc64b8d6/1b4c510fd9f9d72aeb28e707d62a2834349bbb58.jpg";RequestQueue queue = Volley.newRequestQueue(this);final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>(20);ImageCache imageCache = new ImageCache() {@Overridepublic void putBitmap(String key, Bitmap value) {lruCache.put(key, value);}@Overridepublic Bitmap getBitmap(String key) {return lruCache.get(key);}};ImageLoader imageLoader = new ImageLoader(queue, imageCache);ImageListener listener = imageLoader.getImageListener(mImageView,R.drawable.ic_launcher, R.drawable.ic_launcher);imageLoader.get(url, listener);</span>

   3.用volley的自定义NetWorkImageview加载图片

3.1实例化一个RequestQueue

3.2实例化一个LruCache

3.3new一个imageCache并实现putBitmap与getBitmap

3.4创建一个imageloader,传入RequsetQueue和imageCache

3.5imageview对象setTag

3.6imageview对象设置imageurl,传入url和imageloader

String url = "http://d.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=456a5f3cfffaaf5184b689b9bc64b8d6/1b4c510fd9f9d72aeb28e707d62a2834349bbb58.jpg";RequestQueue queue = Volley.newRequestQueue(this);final LruCache<String, Bitmap> lruCache = new LruCache<String, Bitmap>(20);ImageCache cache = new ImageCache() {@Overridepublic void putBitmap(String key, Bitmap value) {lruCache.put(key, value);}@Overridepublic Bitmap getBitmap(String key) {return lruCache.get(key);}};ImageLoader imageLoader = new ImageLoader(queue, cache);mImageView2.setTag("url");mImageView2.setImageUrl(url, imageLoader);

第二种和第三种很像,但是第二种能够在显示错误及未加载完全时都能有对应的图像加载。



0 0