Android网络请求框架Volley的使用

      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>() {

					@Override
					public void onResponse(JSONObject response) {
						Log.i("--response", response.toString());
					}
				}, new Response.ErrorListener() {

					@Override
					public 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() {

			@Override
			public void putBitmap(String key, Bitmap value) {
				lruCache.put(key, value);
			}

			@Override
			public 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() {
			
			@Override
			public void putBitmap(String key, Bitmap value) {
				lruCache.put(key, value);
			}
			
			@Override
			public Bitmap getBitmap(String key) {
				return lruCache.get(key);
			}
		};
		ImageLoader imageLoader = new ImageLoader(queue, cache);
		mImageView2.setTag("url");
		mImageView2.setImageUrl(url, imageLoader);

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值