如何使用 glide 将可绘制文件夹中的 GIF 图像加载到 ImageView 中?

How to load GIF image from drawable folder into ImageView using glide?

我必须使用 glide 显示从 drawable 加载 GIF 图像到 ImageView。我尝试了以下方法。

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

但似乎不起作用,当我将图像放入 raw 时它起作用了 folder.but 问题是我必须使用不同尺寸的图像。

如有任何帮助,我们将不胜感激。

直接传资源id给load():

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

您可以尝试使用 Ion,它对我来说效果很好。 Ion

使用离子

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

使用 Glide

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

另一种方法

对于Glide 3.0你需要提前设置asGif():

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

请记住,仅使用 load() 将根据数据类型加载 GIF 或位图。除非您希望在给定的 url 不是 gif 时加载失败,否则您不需要指定 asGif()

从 drawable 加载 Gif 图像的步骤

  1. 您需要将 Gif 图片移动到项目的res/raw文件夹 ( 如果你的项目在资源中没有 raw 直接文件夹,那么只需制作一个并将你的 gif 放入其中)

  2. 然后你可以简单地用一行代码加载你的gif

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

将您的 Gif 放在 "raw" 文件夹中并使用

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

对于滑行 4

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