Android-矢量可绘制对象可以存储GIF文件/动画图像吗?

时间:2018-08-22 20:27:46

标签: android android-drawable android-image android-vectordrawable

我制作了一个自定义键盘,允许用户发送GIF /图像。

当前,每当用户点击ImageView时,就会运行以下代码。它检查ImageView内部的可绘制对象是否具有动画效果(即,图像是GifDrawable),如果不是,则将其投射到BitmapDrawablecontext.contentComitter.commit()负责将投射的可绘制对象转换为其他应用可以读取的文件。

        if(holder.imageView.drawable is GifDrawable) {
            context.contentCommitter.commitGifDrawable(holder.imageView.drawable, fileName)
        } else {
            context.contentCommitter.commitBitmapDrawable(holder.imageView.drawable as BitmapDrawable, fileName)
        }

问题是-我仅在三星Galaxy S9s上对某些图像遇到以下崩溃:

  

致命异常:java.lang.ClassCastException   android.graphics.drawable.VectorDrawable无法转换为android.graphics.drawable.BitmapDrawable

该解决方案似乎很简单-只需再次检查holder.imageView.drawable是否为VectorDrawable,如果是,则提取Bitmap并将其写入文件。

但是,问题是VectorDrawable源似乎是GIF文件,而不是静态图像。这令人困惑,因为VectorDrawable文档中的方法表明它仅用于存储静态图像。

VectorDrawable是否可能包含动画图像(即GIF),或者VectorDrawable是否仅包含静态图像?

这是图像数据库:https://github.com/vedantroy/Image-Database

0 个答案:

没有答案