Ich muss das Laden von GIF-Bildern von Drawable in ImageView mit glide
anzeigen. Ich habe Folgendes versucht.
Glide.with(LoginActivity.this)
.load(getResources().getDrawable(R.drawable.bg_gif)).asGif()
.crossFade()
.into(relativeLayout);
Scheint aber nicht zu funktionieren und es funktioniert, wenn ich ein Bild in den Ordner raw
lege. Das Problem ist jedoch, dass ich Bilder mit verschiedenen Dimensionen verwenden muss.
Jede Hilfe wäre sehr dankbar.
Sie können versuchen, Ion zu verwenden, es funktioniert gut für mich. Ion
Ion verwenden
Ion.with(imgView)
.error(R.drawable.default_image)
.animateGif(AnimateGifMode.ANIMATE)
.load("file:///Android_asset/animated.gif");
Glide verwenden
ImageView imageView = (ImageView) findViewById(R.id.imageView);
GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView);
Glide.with(this).load(R.raw.sample_gif).into(imageViewTarget);
Ein anderer Ansatz
Für Glide 3.0 müssen Sie asGif()
früher einstellen:
Glide.with(context)
.load(imageUrl)
.asGif()
.placeholder(R.drawable.loading2)
.crossFade()
.into(imageView);
Beachten Sie, dass durch die Verwendung von load () abhängig vom Datentyp entweder eine GIF oder eine Bitmap geladen wird. Wenn Sie nicht möchten, dass Ihre Last fehlschlägt, wenn die angegebene URL kein GIF ist, müssen Sie asGif () nicht angeben.
Übergeben Sie einfach die Ressourcen-ID direkt an load () :
Glide.with(LoginActivity.this)
.load(R.drawable.bg_gif)
.asGif() // you may not need this
.crossFade()
.into(relativeLayout);
Sie müssen Ihr Gif-Bild in den res/raw
-Ordner Ihres Projekts verschieben ( Wenn Ihr Projekt den raw
-Ordner nicht direkt in der Ressource hat, erstellen Sie einfach einen und fügen Sie Ihre GIF-Datei ein.)
und dann kannst du einfach dein Gif mit nur einer Codezeile laden
Glide.with(this) .load(R.raw.splash) .into(new GlideDrawableImageViewTarget( (ImageView) findViewById(R.id.image)));
Für Glide 4
GlideApp.with(this)
.load(R.raw.gif_file)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(imageView);
Legen Sie Ihre GIF in den "rohen" Ordner und verwenden Sie
GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView);
Glide.with(this).load(R.raw.test).into(imageViewTarget);