【Android】Volley框架的使用简介

一、volley框架的介绍

volley框架是在2013年Google I/O大会上发布的Android平台的网络通信库,使网络通信更快,更简单,更健壮。

二、volley框架的适用环境

当数据量不大但使用频率较大时,推荐使用volley框架。

例如:listview、gridview中的图片等。

三、示例代码


1.用get方式请求数据

 

mQueue = Volley.newRequestQueue(getApplicationContext());  
mQueue.add(new JsonObjectRequest(Method.GET, url, null,  
            new Listener() {  
                @Override  
                public void onResponse(JSONObject response) {  
                    Log.d(TAG, "response : " + response.toString());  
                }  
            }, null));  
mQueue.start();  


2.用post方式请求数据

(1)获取String数据,使用StringRequest

RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());//创建一个请求队列
//构造函数中第一个参数为数据请求方式
//第二个参数是请求的Url地址
StringRequest stringRequest = new StringRequest(com.android.volley.Request.Method.POST,urlString,
	new Response.Listener<String>() {


		@Override
		public void onResponse(String response) {
			//String response即为得到的数据
			//在onResponse方法中可直接对数据进行操作				
		}
	},new Response.ErrorListener() {//请求出错的处理方法


		@Override
		public void onErrorResponse(VolleyError error) {
			// TODO Auto-generated method stub
								
		}
			})
			{	
				//若需要传递参数才可以获得数据,则可以使用getParams方法
				protected  Map<String, String> getParams()
				{
					Map<String, String> params = new HashMap<String, String>();
					params.put("...",...);
					...
					...
	
					return params;	
				}
			};
mQueue.add(stringRequest);//把String请求加入到请求队列中
(2)获取Json数据,使用JsonReuqest,与StringReuquest类似

mQueue = Volley.newRequestQueue(getApplicationContext());  
mQueue.add(new JsonObjectRequest(Method.GET, url, null,  
            new Listener() {  
                @Override  
                public void onResponse(JSONObject response) {  
                    
                }  
            }, null));  
mQueue.start(); 

总结一下,用volley获取string数据的步骤如下:

1.new一个请求队列

2.new一个String请求

3.将String请求加入到请求队列中


一般来说,一个类中只需要一个请求队列即可。


3.使用Volley异步加载图片

<pre name="code" class="java">ImageLoader imageLoader = new ImageLoader(mQueue, new BitmapCache());
//第一个参数该图片的控件
//第二个参数为图片未加载完时控件显示的图片
//第三个参数为加载失败时控件显示的图片
ImageListener listener = ImageLoader.getImageListener(imageView,
		R.drawable.default_image, R.drawable.failed_image);
//第一个参数url表示图片的url地址
imageLoader.get(url, listener);  
//实现BitmapCache借口
public class BitmapCache implements ImageCache {


	private LruCache<String, Bitmap> mCache;


	public BitmapCache() {
		int maxSize = 10 * 1024 * 1024;
		mCache = new LruCache<String, Bitmap>(maxSize) {
			@Override
			protected int sizeOf(String key, Bitmap bitmap) {
				return bitmap.getRowBytes() * bitmap.getHeight();
			}
		};
	}


	@Override
	public Bitmap getBitmap(String url) {
		return mCache.get(url);
	}


	@Override
	public void putBitmap(String url, Bitmap bitmap) {
		mCache.put(url, bitmap);
	}


}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值