转载请注明出处:王亟亟的大牛之路
写之前先安利,接下来2 3个月我会花点时间捡起一些安卓的技能,看看这2年没花什么精力投入的安卓变成啥样子了https://github.com/ddwhan0123/Useful-Open-Source-Android
什么是Glide?
Glide是一个快速高效的Android图片加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(decode pipeline),以及自动的资源池技术。
Glide 支持拉取,解码和展示视频快照,图片,和GIF动画。Glide的Api是如此的灵活,开发者甚至可以插入和替换成自己喜爱的任何网络栈。默认情况下,Glide使用的是一个定制化的基于HttpUrlConnection的栈,但同时也提供了与Google Volley和Square OkHttp快速集成的工具库。
虽然Glide 的主要目标是让任何形式的图片列表的滚动尽可能地变得更快、更平滑,但实际上,Glide几乎能满足你对远程图片的拉取/缩放/显示的一切需求。
本篇研究的内容和目的
- Glide如何暂停请求
- Glide如何获取生命周期
- 以上二者是如何实现的
入口方法
Glide.with(this).load(img_url).into(imageView)
简单的一句加载函数
.with()
关联了一个上下文环境的对象
.load()
关联了你要加载的资源的路径(load是一个多态的方法,可以是url,字符串地址,文件等等等方式)
.into()
是把以上的内容加载到哪个控件里去(into()方法也是,面向的是ViewTarget<a,b>的泛形)
with的做了什么
所有with方法都返回了一个RequestManager
对象
RequestManager的get方法会根据不同的入参类型去构建RequestManager
对象(以下以Activity的场景为例)