这里承接上篇 Glide源码分析之with方法 ,这篇将对
Glide.with(FragmentActivity).load(URL).apply(centerCropTransform()) .into(imageViewRes);
中的load
方法进行分析(PS:本人阅读的源码为 Glide 4.7 版本)
先贴出 load
方法的时序图:
接着就来依据这个时序图来阅读源码吧
Step1 load(url)
/**
* 相当于调用{@link #asDrawable() }然后调用{@link RequestBuilder #load(String)}
*
* @param string 外层传递进来的string,一般为url
* @return 依据外层传递进来的数据模式来让RequestBuilder {@link RequestBuilder} 以
* {@link Drawable}解码方法进行构建图片资源对象
*/
public RequestBuilder<Drawable> load(@Nullable String string) {
return asDrawable().load(string);
}
从这里我们就知道了 Glide
默认将下载的图片资源转为 Drawable
资源对象,如果对资源转换有其他指定的需求的话,我们可以在 laod
方法之前使用 asBitmap()
或者 asGif()
,做好相关的准备
Step2 asDrawable()
/**
* 通过 RequestBuilder {@link RequestBuilder} 这个构建者通过注册
* ResourceDecoder {@link ResourceDecoder} 来解析 Drawable 类型的图片资源