Glide图片加载及三级缓存

  Glide源码详解:   http://blog.csdn.net/yulyu/article/details/60331803

Glide是google推荐的图片加载框架,他不仅性能高,功能强大,而且调用起来非常简单。
一.Glide的构造
Glide是通过GlideBuilder中的createGlide方法生成的(核心代码如下)

Glide的构造参数主要有四个,都是通过createGlide生成的.
MemoryCache 内存缓存
BitmapPool 图片池
DecodeFormat 图片格式
Engine 引擎类

二.with方法

with方法有很多重载,最后会返回一个RequestManager,RequestManager 方法参数为Context,
方法里有一些对context if判断操作识别,就算你传入的是Context ,这里也会根据你Context 实际的类型,
走不同的分支,如果你是在子线程调用with方法,或者传入的Context是Application的话,
请求是跟你的Application的生命周期同步

三.load方法
这里方法也有很多重载

但是最后都会返回一个DrawableTypeRequest (继承了DrawableRequestBuilder)
DrawableRequestBuilder就是支持链式调用的一个类,
我们平时有类似的需求的时候也可以模仿这样的处理方式,把一些非必须参数用链式调用的方式来设置

四.into方法

1.Util.assertMainThread();这里会检查是否主线程,不是的话会抛出异常,所以into方法必须在主线程中调用.
2.当你没有调用transform方法,并且你的ImageView设置了ScaleType,
那么他会根据你的设置,对图片做处理(具体处理可以查看
DrawableRequestBuilder的applyCenterCrop或者applyFitCenter方法,
我们自己自定义BitmapTransformation也可以参考这里的处理).

五、Glide缓存
Glide支持图片的二级缓存(并不是三级缓存,因为从网络加载并不属于缓存),即内存缓存和磁盘缓存。
缓存基础

在 Android App 中必须去做的是一个很好的实现图片加载组件,尝试去减少网络请求,减少用户流量支出,Glide 通过使用默认的内存和磁环缓存去避免不必要的网络请求。

磁盘缓存

一般的图片缓存指的就是磁盘缓存,把网络上的图片缓存到本地,这样就不需要每次都从网络加载,既提高了加载速度,又为用户节省了流量。Glide在默认情况下是开启磁盘缓存的,而且提供了丰富的API来让开发者自己配置和管理磁盘缓存。

缓存位置和大小
开发者可以通过构建一个自定义的GlideModule来配置Glide磁盘缓存的位置和大小。最简单的方法如下:
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值