您的位置:首页 > 编程语言

谷歌联网框架volley的使用

2015-03-25 15:51 148 查看
今天学习了下谷歌的这个联网框架Volley框架的详细解析大神看的懂得可以研究一下,具体的用法我现在就用代码来详细说明下。

在这个框架里面有机会访问方式:StringRequest,JsonobjectRequest,ImageRequest这几种访问方式(好像还有一种但是我没找到,能力有限)。下面就一一上代码。

首先是StringRequest:`/**

* 首先创建一个访问的队列,这个队列里面放的就是一个个具体的请求

*/

RequestQueue requestQueue = Volley

.newRequestQueue(getApplicationContext());

StringRequest stringRequest = new StringRequest(

http://www.baidu.com“,

new Response.Listener() {

@Override
public void onResponse(String response) {
// TODO Auto-generated method stub
Log.e("访问返回的String", response);
}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub
/**
* 访问出现错误的时候,也就是出现返回码不是200的时候
*/
Log.e("访问返回的String", error.getMessage());
}
});
requestQueue.add(stringRequest);`


这是最简单的String下面的这个JsonobjectRequest和String差不多区别就是它返回了一个能够直接解析的Jsonobject:

/**
* 首先创建一个访问的队列,这个队列里面放的就是一个个具体的请求
*/
RequestQueue requestQueue = Volley
.newRequestQueue(getApplicationContext());
JsonObjectRequest request = new JsonObjectRequest(
"http://www.baidu.com", null,
new Response.Listener<JSONObject>() {

@Override
public void onResponse(JSONObject response) {
// TODO Auto-generated method stub
Log.e("访问返回的String", response.toString());
}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub
/**
* 访问出现错误的时候,也就是出现返回码不是200的时候
*/
Log.e("访问返回的String", error.getMessage());
}
});
requestQueue.add(request);
Volley这个框架自带了一个可以直接下载图片的功能,也就是ImageRequest:


/**
* 首先创建一个访问的队列,这个队列里面放的就是一个个具体的请求
*/
RequestQueue requestQueue = Volley
.newRequestQueue(getApplicationContext());
ImageRequest request = new ImageRequest("",
new Response.Listener<Bitmap>() {

@Override
public void onResponse(Bitmap response) {
// TODO Auto-generated method stub
ImageView.setImageBitmap(response);
}
}, 200, 200, Config.ALPHA_8,
new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub

}
});
requestQueue.add(request);


除了这种Volley框架还自带了一个NetworkImageView控件看它的源码就知道,是直接继承ImageView的一个View,它可以和Volley自带的ImageLoader混合使用使来达到联网下载图片到缓存图片的一条龙服务。

直接在Xml文件里面配置:
<com.android.volley.toolbox.NetworkImageView

android:id="@+id/imageview"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />


MainActivity里面:
networkImageView = (NetworkImageView)findViewById(R.id.imageview);’


下一步就是新建一个Class来实现
ImageCache:
这是缓存类imagecache的写法

MainActivity:
RequestQueue requestQueue = Volley

.newRequestQueue(getApplicationContext());

networkImageView.setErrorImageResId(R.drawable.ic_launcher);// 下载失败显示图片

networkImageView

.setImageUrl(

"http://img0.bdstatic.com/img/image/shouye/bizhi0323.jpg",

new ImageLoader(requestQueue, BFImageCache

.getInstance()));


这样图片就可以显示并且缓存到了本地或者内存里面。

很显然这些例子都是get的访问方式,如想实现post的访问方式只需将request的实现函数中的method换成Method.POST,例如:JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(Method.POST, url, jsonRequest, listener, errorListener);

本人也是第一次接触还需要继续研究,如有问题请加QQ:627944520进行讨论
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  代码