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

新手上路,请多包涵

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

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

但是似乎不起作用,当我将图像放在 raw 文件夹中时它正在工作。但问题是我必须使用不同尺寸的图像。

任何帮助将不胜感激。

原文由 Stella 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 384
2 个回答

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

使用离子

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

使用滑翔

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

原文由 Kristo 发布,翻译遵循 CC BY-SA 3.0 许可协议

只需将资源 ID 直接传递给 load()

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

原文由 Doug Stevenson 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题