概述
一.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源码解析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复