返回
Glide v4 源码浅析(3)- into(上)
Android
2024-02-23 23:52:39
Glide 图片加载框架通过 into
方法为视图设置图片。在前文《Glide v4 源码浅析(2)- load 方法与 Registry 说明》中,我们通过 load
方法获得了一个 RequestBuilder
对象,这里将调用它的 into
方法传入 ImageView
,开始加载资源并显示在 ImageView
上。
RequestBuilder.into
方法接收一个 Target<T>
对象作为参数,用于指定加载到的图片将显示在哪个控件上。Target
接口定义了用于接收和显示加载到的资源的回调方法,在 Glide 中提供了多种 Target
实现,例如 ImageViewTarget
、ViewTarget
等。
Glide v4 中的 into
方法实现位于 Glide
类中,简化了内部实现的复杂性。当调用 into
方法时,会创建一个 EngineJob
对象,该对象负责管理加载和显示图片的整个流程。
public <T> void into(Target<T> target) {
into(target, null);
}
EngineJob
是 Glide 中用于管理加载和显示图片的类,它封装了加载和显示资源的逻辑。EngineJob
的主要职责是:
- 根据
RequestBuilder
的配置加载资源。 - 将加载到的资源转换为目标类型(例如
Bitmap
)。 - 将转换后的资源显示在目标控件上。
在 Glide 中,不同的控件类型使用不同的 Target
实现:
ImageView
:使用ImageViewTarget
View
:使用ViewTarget
Bitmap
:使用BitmapTarget
RequestBuilder.into
方法是 Glide 加载和显示图片的关键步骤。它创建了一个 EngineJob
,负责管理加载和显示图片的整个流程。Glide 使用不同的 Target
实现来针对不同的控件类型显示资源,为开发人员提供了灵活性和可定制性。