El proceso de carga del principio Glide

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.

 

Supongo que te gusta

Origin blog.csdn.net/gjd1988/article/details/100095843
Recomendado
Clasificación