11-16Vollery网络加载跟优化

  • 列表内容

    先说Volley简单的http通讯流程加载
            1会先设定一个 请求队列 RequestQueue对象,  通过
    
    1. 列表内容

    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);一次全部取消请求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值