Glide加载流程(基于3.7版本)

Glide.with(.load(URL).into(ImageView的); 滑翔机的基本用法

使用Glide第一步都是调用与方法,根据参数不同有如下方法

Glide加载流程(基于3.7版本)_第1张图片

根据参数为活动举例

Glide加载流程(基于3.7版本)_第2张图片

生命周期绑定是需要注意的地方,使用错误会导致图片无法加载

下一步负载(URL),框架提供的API

Glide加载流程(基于3.7版本)_第3张图片我们这里选取一个常见的字符串来分析

Glide加载流程(基于3.7版本)_第4张图片

重点看返回对象DrawableTypeRequest,这个类提供了asBitmap()和asGif可以根据需要选择,不过这个类中并并没有负载,明显在父类或者接口中.DrawableRequestBuilder是其父类,里面提供了滑翔很多常用的API ,误差(),占位符(),diskCacheStrategy(),代入()等。

第三步为()方法

Glide加载流程(基于3.7版本)_第5张图片

只有一个super.into()。正在的实现还是在父类GenericRequestBuilder

Glide加载流程(基于3.7版本)_第6张图片Glide加载流程(基于3.7版本)_第7张图片

继续看最后一行的进入方法

Glide加载流程(基于3.7版本)_第8张图片

这个方法中重点是创建要求和执行的请求,先来看buildRequest方法。

跟踪进入会发现代码很复杂,这里只看重点流程。

Glide加载流程(基于3.7版本)_第9张图片

根据获得方法的参数,可以看出基本上的根据这个配置穿件一个请求对象了

接着看执行请求方法

Glide加载流程(基于3.7版本)_第10张图片

开始()是个接口方法,分析后定位到GenericRequest类。

Glide加载流程(基于3.7版本)_第11张图片

继续分析,看看onSizeReady这个方法

Glide加载流程(基于3.7版本)_第12张图片

进入加载方法

Glide加载流程(基于3.7版本)_第13张图片

进入EngineRunnable

Glide加载流程(基于3.7版本)_第14张图片

滑翔的基本流程到此为止了,还有好多细节我们后面继续分析。

你可能感兴趣的:(tools)