谷歌联网框架volley的使用

今天学习了下谷歌的这个联网框架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进行讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值