美文网首页
Glide.into

Glide.into

作者: littleGrow | 来源:发表于2018-10-12 18:21 被阅读0次

Glide版本4.7.1

GlideApp.with(FragmentActivity).load(String).into(ImageView)中into的流程:

GlideApp.with(FragmentActivity).load(String)返回GlideRequest<Drawable>(RequestBuilder的子类)

其中,从SourceGenerator找到HttpUrlFetcher的过程比较麻烦。首先,从SourceGenerator的startNext方法内部找到helper.getLoadData()获取loadData。然后从Glide的register中获取满足条件的ModelLoader,这时候你会发现获取到多个ModelLoader(DataUrlLoader,StringLoader)。那么如何去判断真正使用的是哪个ModelLoader呢?从下面代码中获取:

图2

首先,在图2的1处根据RequestOptions中的diskCacheStrategy和ModelLoader中的fetcher的DataSource做比较,默认的缓存策略是DiskCacheStrategy.AUTOMATIC即从网络获取;如果缓存策略DiskCacheStrategy是NONE则在图2的2处从Glide中去继续查找做第二次的判断;至此我们找到真正加载图片的HttpUrlFetcher。关于Glide的图片缓存可以参考文章Glide的图片缓存 - 简书

以下则是获取到InputStream后转换成图片加载的过程:

最后再调用DrawableImageViewTarget的onResourceReady方法加图片加载到ImageView上。

相关文章

  • Glide的图片缓存

    Glide版本4.7.1 在Glide.into的流程图Glide.into中我们可以找到缓存的使用是在Engin...

  • Glide.into

    Glide版本4.7.1 GlideApp.with(FragmentActivity).load(String)...

网友评论

      本文标题:Glide.into

      本文链接:https://www.haomeiwen.com/subject/efjmaftx.html