我是靠谱客的博主 醉熏绿茶,最近开发中收集的这篇文章主要介绍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源码解析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部