Volley的使用
来源:互联网 发布:python教学视频 编辑:程序博客网 时间:2024/05/22 10:41
Volley是一个比较热门的网络框架,那么如何使用它呢?下面是对它使用的总结:
首先在app目录下的build.gradle添加依赖:
compile 'com.android.volley:volley:1.0.0'
不管你想要用什么请求,或者是加载图片,都是跟着三个步骤走:(1)创建请求队列,(2)创建请求,(3)将请求添加到队列中去。Get请求:步骤如上述,注意在创建请求时,要传入url,请求成功的监听,请求失败的监听。
//1.创建一个请求队列 final RequestQueue request = Volley.newRequestQueue(MainActivity.this); //2.创建一个请求 StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() { @Override public void onResponse(String response) { tv_result.setText(response); } }, new Response.ErrorListener() {//发生异常 @Override public void onErrorResponse(VolleyError error) { tv_result.setText("加载错误"); } }); //3.将创建的请求添加到请求队列中去 request.add(stringRequest);Post请求:与Get请求不同的是,请求的第一参数是请求方法,并且可以在请求中的getParams方法中以Map对象添加参数
//1.创建一个请求队列 RequestQueue requestQueue = Volley.newRequestQueue(this); //2.创建一个post请求 StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() { @Override public void onResponse(String response) { tv_result.setText(response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { tv_result.setText("加载失败" + error.getMessage()); } }) { @Override protected Map<String, String> getParams() throws AuthFailureError { Map<String, String> mMap = new HashMap<>(); //添加参数 return super.getParams(); } }; //3.将Post请求添加到请求队列中去 requestQueue.add(stringRequest);Json请求:即返回的数据格式为Json,与Get相同,不过请求的对象不同,有JsonObject和JsonArray请求,根据需要做相应的请求。
//1.创建一个请求队列 final RequestQueue requestQueue = Volley.newRequestQueue(this); //2.创建一个post请求 JsonObjectRequest jsonRequest = new JsonObjectRequest(url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { tv_result.setText(response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { tv_result.setText("加载失败:" + error); } }); //3.将Post请求添加到请求队列中去 requestQueue.add(jsonRequest);ImageRequest请求:步骤不变,ImageRequest的参数为:图片地址,请求成功监听,图片的最大宽度,图片的最大高度,图片的参数(位),请求失败监听(可再次回调中设置请求失败显示的图片)
//1.创建请求队列 RequestQueue request = Volley.newRequestQueue(MainActivity.this); //2.创建请求 ImageRequest imageRequest = new ImageRequest(imgUrl, new Response.Listener<Bitmap>() { @Override public void onResponse(Bitmap response) { mImageView.setImageBitmap(response); } }, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { mImageView.setImageResource(R.mipmap.ic_launcher); } }); //3.将请求添加到请求队列中去 request.add(imageRequest);ImageLoader请求:第一个参数为请求队列,第二个是缓存对象
//1.创建请求队列 RequestQueue request = Volley.newRequestQueue(MainActivity.this); //2.创建一个请求 ImageLoader imageLoader = new ImageLoader(request, new ImageLoader.ImageCache() {//图片缓存 @Override public Bitmap getBitmap(String url) { return null; } @Override public void putBitmap(String url, Bitmap bitmap) { } } ); //3.加载图片 ImageLoader.ImageListener listener = imageLoader.getImageListener(mImageView, R.mipmap.ic_launcher, R.mipmap.ic_launcher); imageLoader.get(imgUrl, listener);缓存对象可以自己定义,继承ImageCache,然后实现它的get和set方法,并设置内存的大小,贴下代码:
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 value) { return value.getRowBytes() * value.getHeight(); } }; } @Override public Bitmap getBitmap(String url) { return mCache.get(url); } @Override public void putBitmap(String url, Bitmap bitmap) { mCache.put(url, bitmap); }}Volley框架还提供了一个控件:NetworkImageView,它的用法与普通的ImageView类似,不过它可以结合ImageLoader请求,可以设置请求错误的默认图片、和没有请求时的默认图片:
//1.创建请求队列 RequestQueue request = Volley.newRequestQueue(MainActivity.this); ImageLoader imageLoader=new ImageLoader(request,new BitmapCache()); //设置默认图片 mNetImageView.setDefaultImageResId(R.mipmap.ic_launcher); mNetImageView.setErrorImageResId(R.mipmap.ic_launcher); //加载图片 mNetImageView.setImageUrl(imgUrl,imageLoader);
Volley框架的基本用法差不多有这些,后续还会试着去读读它的源码理解理解。
0 0
- Volley的初步使用
- Volley框架的使用
- volley的详细使用
- volley的使用
- Volley的使用详解
- volley的简单使用
- Volley的使用笔记
- Volley 使用的缓存
- Volley框架的使用
- Volley的使用
- Volley的使用
- Volley的基本使用
- Volley框架的使用
- Volley框架的使用
- volley的使用
- Volley框架的使用
- Volley的基本使用
- Volley的简单使用
- 深度学习框架caffe 各层参数解析
- MIME详解
- 把有依赖包的ec项目导入as中遇见的问题一
- 分析Android项目中各个gradle文件,简单Groovy语法、实例
- tcp在TIME_WAIT状态下等待2MSL
- Volley的使用
- 响应轮播图
- Android中检查自动更新使用Service,其中包含了Service的使用然后还包含了几个自定义的dialog
- 树的镜像
- linux命令总结
- Java进阶(一)Java内存解析
- 求最大回文子串问题
- 利用MATLAB数端子数量
- 部署ftp文件分享服务