Android Volley框架使用方法详解
程序员文章站
2024-03-01 21:16:16
本文主要从两个方面对android volley框架的使用方法进行讲解,具体内容如下
一、网络请求
1.get方式请求数据
// 1 创建一个请求队列...
本文主要从两个方面对android volley框架的使用方法进行讲解,具体内容如下
一、网络请求
1.get方式请求数据
// 1 创建一个请求队列 requestqueue requestqueue = volley.newrequestqueue(volleyactivity.this); // 2 创建一个请求 string url = "http://api.m.mtime.cn/pagesubarea/trailerlist.api"; stringrequest stringrequest = new stringrequest(url, new response.listener<string>() { // 正确接收数据回调 @override public void onresponse(string s) { tv_volley_result.settext(s); } }, new response.errorlistener() {// 发生异常后的监听回调 @override public void onerrorresponse(volleyerror volleyerror) { tv_volley_result.settext("加载失败" + volleyerror); } }); // 3 将创建的请求添加到请求队列中 requestqueue.add(stringrequest);
2.post方式请求数据
// 1 创建一个请求队列 requestqueue requestqueue = volley.newrequestqueue(volleyactivity.this); // 2 创建一个post请求 string url = "http://api.m.mtime.cn/pagesubarea/trailerlist.api"; stringrequest stringrequest = new stringrequest(request.method.post, url, new response.listener<string>() { @override public void onresponse(string s) { tv_volley_result.settext(s); } }, new response.errorlistener() { @override public void onerrorresponse(volleyerror volleyerror) { tv_volley_result.settext("请求失败" + volleyerror); } }) { @override protected map<string, string> getparams() throws authfailureerror { map<string, string> map = new hashmap<string, string>(); // map.put("value1","param1"); return map; } }; // 3 将post请求添加到队列中 requestqueue.add(stringrequest);
3.请求json数据
// 1 创建一个请求队列 requestqueue requestqueue = volley.newrequestqueue(volleyactivity.this); // 2 创建一个请求 string url = "http://api.m.mtime.cn/pagesubarea/trailerlist.api"; jsonobjectrequest jsonobjectrequest = new jsonobjectrequest(url, null, new response.listener<jsonobject>() { @override public void onresponse(jsonobject jsonobject) { tv_volley_result.settext(jsonobject.tostring()); } }, new response.errorlistener() { @override public void onerrorresponse(volleyerror volleyerror) { tv_volley_result.settext("请求失败" + volleyerror); } }); // 3 将创建的请求添加到请求队列中 requestqueue.add(jsonobjectrequest);
二、图片加载
1.imagerequest加载图片
// 1 创建一个请求队列 requestqueue requestqueue = volley.newrequestqueue(volleyactivity.this); // 2 创建一个图片的请求 string url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg"; imagerequest imagerequest = new imagerequest(url, new response.listener<bitmap>() { @override public void onresponse(bitmap bitmap) { // 正确接收到图片 iv_volley_result.setimagebitmap(bitmap); } }, 0, 0, bitmap.config.rgb_565, new response.errorlistener() { @override public void onerrorresponse(volleyerror volleyerror) { iv_volley_result.setimageresource(r.drawable.atguigu_logo); } }); // 3 将请求添加到请求队列中 requestqueue.add(imagerequest);
2.imageloader加载图片
// 创建一个请求队列 requestqueue requestqueue = volley.newrequestqueue(volleyactivity.this); imageloader imageloader = new imageloader(requestqueue, new bitmapcache()); // 加载图片 string url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg"; imageloader.imagelistener imagelistener = imageloader.getimagelistener(iv_volley_result, r.drawable.atguigu_logo, r.drawable.atguigu_logo); imageloader.get(url, imagelistener);
bitmapcache.java
public class bitmapcache implements imageloader.imagecache { private lrucache<string, bitmap> mcache; public bitmapcache() { int maxsize = 10 * 1024 * 1024;// 10m 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); } }
3.networkimageview加载图片
<com.android.volley.toolbox.networkimageview android:id="@+id/iv_volley_networkimagview" android:layout_width="200dp" android:layout_height="200dp" android:visibility="gone"> </com.android.volley.toolbox.networkimageview>
// 创建一个请求队列 requestqueue requestqueue = volley.newrequestqueue(volleyactivity.this); // 创建一个imageloader imageloader imageloader = new imageloader(requestqueue, new bitmapcache()); // 默认图片和异常图片设置 iv_volley_networkimagview.setdefaultimageresid(r.drawable.atguigu_logo); iv_volley_networkimagview.seterrorimageresid(r.drawable.atguigu_logo); // 加载图片 string url = "http://img5.mtime.cn/mg/2016/10/11/160347.30270341.jpg"; iv_volley_networkimagview.setimageurl(url, imageloader);