web-dev-qa-db-fra.com

Comment charger une image GIF d'un dossier pouvant être dessiné dans ImageView en utilisant glide?

Je dois montrer charger l'image GIF de drawable à ImageView en utilisant glide. J'ai essayé de suivre.

Glide.with(LoginActivity.this)
                .load(getResources().getDrawable(R.drawable.bg_gif)).asGif()
                .crossFade()
                .into(relativeLayout);

Mais cela ne semble pas fonctionner et cela fonctionne lorsque je place l'image dans le dossier raw.mais le problème est que je dois utiliser des images de dimension différente.

Toute aide serait grandement appréciée.

5
Stella

Vous pouvez essayer d'utiliser Ion, cela fonctionne très bien pour moi. Ion

Utiliser Ion

 Ion.with(imgView)
.error(R.drawable.default_image)
.animateGif(AnimateGifMode.ANIMATE)
.load("file:///Android_asset/animated.gif");

Utiliser Glide

ImageView imageView = (ImageView) findViewById(R.id.imageView);
GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView);
Glide.with(this).load(R.raw.sample_gif).into(imageViewTarget);

Une autre approche

Pour Glide 3.0 vous devez définir asGif() plus tôt:

Glide.with(context)
    .load(imageUrl)
    .asGif()
    .placeholder(R.drawable.loading2)
    .crossFade()
    .into(imageView);

Gardez à l'esprit que le simple fait d'utiliser load () chargera un fichier GIF ou Bitmap en fonction du type de données. Sauf si vous voulez que votre charge échoue si l'URL donnée n'est pas un gif, vous n'avez pas besoin de spécifier asGif ()

10
Kristo

Il suffit de passer l’identifiant de la ressource directement à load () :

Glide.with(LoginActivity.this)
            .load(R.drawable.bg_gif)
            .asGif()  // you may not need this
            .crossFade()
            .into(relativeLayout);
4
Doug Stevenson

Étapes pour charger des images Gif de drawable

  1. Vous devez déplacer votre image Gif dans le dossier res/raw de votre projet ( Si votre projet n'a pas de dossier raw dans la ressource directement, créez-en simplement un et insérez votre gif) 

  2. et ensuite vous pouvez simplement charger votre gif avec une seule ligne de code

Glide.with(this)
                  .load(R.raw.splash)
                  .into(new GlideDrawableImageViewTarget(
                          (ImageView) findViewById(R.id.image)));
2
Hitesh Sahu

Pour Glide 4

GlideApp.with(this)
            .load(R.raw.gif_file)
            .diskCacheStrategy(DiskCacheStrategy.NONE)
            .into(imageView);
1
Gowsik K C

Placez votre Gif dans le dossier "raw" et utilisez

  GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView);
    Glide.with(this).load(R.raw.test).into(imageViewTarget);
1
Satyam Anand