2017-07-07 5 views
1

Bonne journée.Utilisation de Glide pour charger un espace réservé de l'URL à afficher lors du chargement d'un fichier GIF (Android)

Ce que j'est ceci:

Glide 
      .with(this) 
      .load(imageUrl) 
      .asGif() 
      .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
      .placeholder(R.drawable.gif) 
      .into(imageView); 

Mais au lieu, je veux utiliser Glide pour charger le même gif asBitmap() à utiliser comme espace réservé pour tout son chargement gif réel.

Comme si je pouvais faire: .placeholder(Glide.with(this).load(imageUrl).asBitmap())

Merci à l'avance.

Répondre

1

Vous devez passer l'URL dans .thumbnail (url) comme

.thumbnail(Glide 
     .with(context) 
     .load(Url) 
     .asBitmap() 

Ou comme ceci: -

DrawableRequestBuilder<String> thumbnail = Glide.with(context) 
      .diskCacheStrategy(DiskCacheStrategy.ALL) 
      .load(url); 
    try { 
     Glide.with(context) 
       .diskCacheStrategy(DiskCacheStrategy.ALL) 
       .error(placeholder) 
       .load(url) 
       .thumbnail(thumbnail) 
       .into(imageView); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

Référence:

https://github.com/bumptech/glide/issues/1198

https://futurestud.io/tutorials/glide-thumbnails

https://github.com/bumptech/glide/issues/362

private void loadImage(ImageView image, @RawRes int typeID, String imagePath) { 
Context context = image.getContext(); 
BitmapPool pool = Glide.get(context).getBitmapPool(); 

// OPTION 1 Bitmap 
Glide 
    .with(image.getContext()) 
    .load(imagePath) 
    .asBitmap() 
    .animate(android.R.anim.fade_in) 
    .placeholder(R.drawable.image_loading) 
    .error(R.drawable.image_error) 
    .thumbnail(Glide 
     .with(context) 
     .load(typeID) 
     .asBitmap() 
     .imageDecoder(new SvgBitmapDecoder(pool)) // implements ResourceDecoder<InputStream, Bitmap> 
    ) 
    .into(image) 
; 

// OPTION 2 GlideDrawable 
Glide 
    .with(image.getContext()) 
    .load(imagePath) 
    .crossFade() 
    .placeholder(R.drawable.image_loading) 
    .error(R.drawable.image_error) 
    .thumbnail(Glide 
     .with(context) 
     .load(typeID) 
     .decoder(new GifBitmapWrapperResourceDecoder(
        new ImageVideoBitmapDecoder(
         new SvgBitmapDecoder(pool), 
         null /*fileDescriptorDecoder*/ 
        ), 
        // just to satisfy GifBitmapWrapperResourceDecoder.getId() which throws NPE otherwise 
        new GifResourceDecoder(context, pool), 
        pool 
       ) 
     ) 
    ) 
    .into(image) 
; 
}