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
-
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); -
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)