Saltar al contenido

Precarga varias imágenes con Glide

Nuestro equipo especializado pasados algunos días de investigación y recopilación de de información, dimos con la solución, esperamos que resulte útil para ti en tu plan.

Solución:

Use el siguiente código para almacenar imágenes en caché sin mostrarlas

  1. utilizando el downloadOnly método si está buscando descargar imágenes de la web y almacenarlas en diskCache:

    FutureTarget future = Glide.with(applicationContext)
        .load(yourUrl)
        .downloadOnly(500, 500);
    
  2. utilizando preload método si desea cargarlos en la memoria caché.

    Glide.with(context)
            .load(url)
            .preload(500, 500);
    

Más tarde puede usar las imágenes almacenadas en caché usando

Glide.with(yourFragment)
    .load(yourUrl)
    .into(yourView);

La mejor opción es manejar el almacenamiento en caché usted mismo, le brinda más control y debería ser fácil ya que ya sabe qué mapas de bits se cargarán.

Primero: configurar un LruCache

LruCache memCache = new LruCache<>(size) 
    @Override
    protected int sizeOf(String key, Bitmap image) 
        return image.getByteCount()/1024;
    
;

Segundo: Cargue los mapas de bits en LruCache

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x; //width of screen in pixels
int height = size.y;//height of screen in pixels
Glide.with(context)
    .load(Uri.parse("file:///android_asset/imagefile"))
    .asBitmap()
    .fitCenter() //fits given dimensions maintaining ratio
    .into(new SimpleTarget(width,height) 
        // the constructor SimpleTarget() without (width, height) can also be used.
        // as suggested by, An-droid in the comments
        @Override
        public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) 
            memCache.put("imagefile", resource);
        
    );

Tercero: use los mapas de bits almacenados en caché

Bitmap image = memCache.get("imagefile");
if (image != null) 
    //Bitmap exists in cache.
    imageView.setImageBitmap(image); 
 else 
    //Bitmap not found in cache reload it 
    Glide.with(context)
         .load(Uri.parse("file:///android_asset/imagefile"))
         .into(imageView);

Glide versión 4.6.1

RequestOptions requestOptions = RequestOptions
        .diskCacheStrategy(DiskCacheStrategy.ALL);

Glide.with(appContext)
        .asBitmap()
        .load(model)
        .apply(requestOptions)
        .submit();

Calificaciones y comentarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *