如何在 glide lib 的帮助下在对话框中显示 GIF

How to Show GIF inside a Dialog with help of glide lib

我试图在我的应用程序的加载对话框中显示 GIF,我正在使用 glide 图像库,因为它支持 GIFS。当我试图在对话框中显示 GIF 时,它不显示 GIF,只显示对话框背景。我一直在寻找,但我没有找到好的解决方案。

下面是我的对话框代码

class ShowProgress(context: Context) : Dialog(context) {

var dialog: Dialog? = null
var imageView: ImageView? = null

init {
    dialog = Dialog(context)
    imageView = findViewById(R.id.glideImage)
}

fun showDialog(context: Context) {
    val dialogView = LayoutInflater.from(context).inflate(R.layout.progress_layout, null, false)
    imageView?.let { Glide.with(context).asGif().placeholder(R.drawable.redbull).into(it) }
    dialog?.setCancelable(false)
    dialog?.setContentView(dialogView)
    dialog?.show()

}

如果我错了,有人可以纠正我,但开箱即用 ImageView 不支持 Gif 格式。

您需要查看替代格式,例如将其托管在 WebView 中或使用这样的库:https://github.com/koral--/android-gif-drawable

自 2013 年起 ImageView 不支持 Gif:

Android P 制作 Gif 的方式:https://medium.com/appnroll-publication/what-is-new-in-android-p-imagedecoder-animatedimagedrawable-a65744bec7c1


我会更正自己(是的,不支持,但是):

看起来 Glide 自己做了一些魔术来制作 Gif Drawable,请看这里:

所以对于你的例子:

    GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView);
    imageView?.let { Glide.with(context).asGif().placeholder(R.drawable.redbull).into(imageViewTarget) }