列表内容
先说Volley简单的http通讯流程加载 1会先设定一个 请求队列 RequestQueue对象, 通过
- 列表内容
Volley.newRequestQueue的形式来获取 2-1然后来创建 Request对象每个请求的详情StringRequest
分三个参数,跟四个参数 2.1三个参数分别是String url,listener,ErrorListener;
2.2四个参数 比三个参数的多一个请求类型 区分是post还是get:int Method,String url,listener,ErrorListener;
3.将请求对象加入请求对立 这样就完成了http请求。 2-2当为post时请求对象会试图尝试重写父类-Request的getParams()的方法来获取Post参数,可以直接在创建StringRequest时通过匿名内部类直接重写,这样使用起来有的时候可能会非常费劲,你可以尝试自己去重写封装。
2-3还有一个请求是JsonRequest也是继承Request,不过使一个抽象类,无法直接去创建他的实例,但是她有两个直接的子类可以让我们去入手,jsonObject和jsonArray,一个是用来请求一段json数据的,一个是用来请求一段数组的。这几个请求什么时候用谁,一般使看其返回数据类型来决定的。
2-3:ImageRequest 六个参数:
1.图片的url地址 2请求成功的回调 34是图片的的最大宽高 5是设置bitmap.config的颜色属性(ARGB_8888可以展示最好的颜色属性,每个图片像素占4个字节大小,而RGB_565展示的每个图片像素只有2个字节大小)
6是失败时候的回调
二 vollery提供的Imageloader用于加载网络上图片。内部封装了ImageRequest. 比imageRequest高效很多,不仅会去缓存,而且会去避免很多的重复链接与反复发送相同的请求。
而且ImageLoader不是继承自Request,使用分为四步:1)创建一个RequestQueue对象。2)创建一个ImageLoader对象。3)获取一个ImageListener对象。3)d调用ImafeLoader的get()方法加载网络上的图片
*:在调用这个Imageloader的时候,所创建的ImageCache对象是一个空引用,并没有起到什么实质的作用,需要自己去实现一个创建一个cache去实现ImageCache接口,来缓存大量的图片(提示:lruCaChe是Android推荐存放的容器)
三
NetWorkImageView也使Volley提供用来加载网络图片。不同于其它的方法使NetWorkImageView是一个自定义控件继承于ImageView,在原生的基础之上加入了加载网络图片的功能。加载方式的步骤大致为五步:
1)创建RequestQueue对象。2)创建ImageLoader对象。3)在布局文件中添加一个NetworkImageView控件。4)在代码中获取该控件的实例。5)设置要加载的图片地址。
在其中获取了NetworkImageView的实例后还提供了很多方法去控制与展示图片。NetWorkImageView与ImageRequest,ImageLoader在传参时,并没有传入其设置的最大宽高,但这并不代表着它不会对图片进行加载,而是因为它本身就是一个控件,它会自动获取自身的宽高对比网络图片的宽高,再决定加载与否。其压缩也就是完全自动化的,而且始终呈现给我们一张大小刚刚好的网络图片,不会多占内存。如果不想压缩图片只需要将其宽高布局属性设置为,wap_content.
*:外加一个控制是否缓存的属性stringRequest.setShouldCache(true);
控制请求:给请求设置tag,可通过request.cancelAll(tag);一次全部取消请求
11-16Vollery网络加载跟优化
最新推荐文章于 2021-02-16 23:44:14 发布