Example #1
0
  /**
   * cancelarExtractorInnecesario: Checa si ya existe un extractor para dicha ruta de imagen, de ser
   * asi lo cancela.
   *
   * @param ruta String de la ruta de la imagen
   * @param contenedor_imagen ImageView del contenedor de la imagen
   * @return false si ya existe un hilo extrayendo ese bitmap, true si no existe o se logro cancelar
   *     un hilo innecesario
   */
  public static boolean cancelarExtractorInnecesario(String ruta, ImageView contenedor_imagen) {
    // Obtenemos el hilo linkeado a este contenedor, si el contenedor ya se reciclo, no
    // coincidiran las rutas y lo cancelamos
    final HiloExtractorBitmap extractor = obtenerHiloExtractorBitmap(contenedor_imagen);

    if (extractor != null) {
      if (extractor.ruta.equals(RUTA_AUN_NO_INDICADA) || !extractor.ruta.equals(ruta)) {
        extractor.cancel(true);
      } else {
        return false;
      }
    }
    return true;
  }
Example #2
0
  /**
   * extraerImagenEn: Extrae el bitmap de la ruta especificada con el tamano necesario para situarlo
   * en el contenedor que se especifique, de forma optima para el ahorro de recursos.
   *
   * @param activity contexto donde se ubica el contenedor.
   * @param contenedor_imagen ImageView que contendra a la imagen una vez cargada.
   * @param ruta String con la ruta del almacenamiento externo donde se ubica el bitmap.
   */
  public void extraerImagenListaEn(Activity activity, ImageView contenedor_imagen, String ruta) {
    if (cancelarExtractorInnecesario(ruta, contenedor_imagen)) {
      final Bitmap bitmap_cache = memoria_cache.get(ruta);
      if (bitmap_cache != null) {
        contenedor_imagen.setImageBitmap(bitmap_cache);
      } else {
        // si ya se libero el extractor innecesario se inicia uno nuevo con la nueva imagen
        HiloExtractorBitmap extractor = new HiloExtractorBitmap(contenedor_imagen);
        contenedor_imagen.setImageDrawable(
            new AsyncDrawable(activity.getResources(), imagen_cargando, extractor));

        String parametros[] = {ruta};
        extractor.execute(parametros);
      }
    }
  }