美文网首页
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.into

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