Anteriormente aprendimos que el método Glide#with devuelve el objeto RequstManager, por lo que el método de carga llama al método RequstManager.load.
1. RequstManager#load
/**
* 先调用asDrawable然后调用RequestBuilder#load(String)
* @return A new request builder for loading a {@link Drawable} using the given model.
*/
@NonNull
@CheckResult
@Override
public RequestBuilder<Drawable> load(@Nullable String string) {
return asDrawable().load(string);
}
2. como dibujable
/**
* 构建RequestBuilder对象
* @return A new request builder for loading a {@link Drawable}.
*/
@NonNull
@CheckResult
public RequestBuilder<Drawable> asDrawable() {
return as(Drawable.class);
}
@NonNull
@CheckResult
public <ResourceType> RequestBuilder<ResourceType> as(
@NonNull Class<ResourceType> resourceClass) {
return new RequestBuilder<>(glide, this, resourceClass, context);
}
3. RequestBuilder#load(Cadena)
@NonNull
@Override
@CheckResult
public RequestBuilder<TranscodeType> load(@Nullable String string) {
return loadGeneric(string);
}
@NonNull
private RequestBuilder<TranscodeType> loadGeneric(@Nullable Object model) {
this.model = model;
isModelSet = true;
return this;
}
El proceso de carga termina simplemente configurando dos valores. model es la cadena de URL que pasamos e isModelSet es un estado que indica que se ha establecido este parámetro. La carga real se realiza en, analizaremos el proceso de entrada a continuación.