我是靠谱客的博主 醉熏绿茶,这篇文章主要介绍glide源码解析,现在分享给大家,希望可以做个参考。

一.glide基础三步走:先with(),然后load(),最后into()。

1.with():可以传入activity,fragment,context

在Glide中调用RequestManagerRetriever的get方法,在get方法中传入context,或activity或fragment,最终会返回一个RequestManager对象。

如果是applicationContext则不需要特殊操作直接调用getApplicationManager创建RequestManager对象,生命周期则和应用程序生命周期一致

如果是activity或者fragment则supportFragmentGet或者fragmentGet,注意这里如果判断不是主线程则调用的还是与application绑定生命周期的方法。在或者fragmentGet中会创建一个fragment用于监听生命周期。

2.load():Glide支持加载各种各样的图片资源,包括网络图片、本地图片、应用资源、二进制流、Uri对象等等。因此load()方法也有很多个方法重载,此处分析的是加载网络图片的url。

RequestManager中调用(DrawableTypeRequest<String>) fromString().load(string)方法

formString中会得到不同的ModelLoader,ModelLoader对象是用来加载图片的,最终返回的是DrawableTypeRequest对象

然后看DrawableTypeRequest对象可以看出里面有asBitmap和asGif,他们分别创建了一个BitmapTypeRequest和GifTypeRequest,如果没有强制规定则还是DrawableTypeRequest对象。

然后看DrawableTypeRequest对象的父

最后

以上就是醉熏绿茶最近收集整理的关于glide源码解析的全部内容,更多相关glide源码解析内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(126)

评论列表共有 0 条评论

立即
投稿
返回
顶部