ImageView:动画 gif 预览

Posted

技术标签:

【中文标题】ImageView:动画 gif 预览【英文标题】:ImageView: animated gif preview 【发布时间】:2016-07-13 16:25:57 【问题描述】:

我正在整理一个显示图像预览的图片库。对于大多数图像,这没有问题,只有当图像是动画 gif 时,图像也是动画的,在这种情况下,这不是必需的。 我想要为动画 gif 做的是只显示动画的一帧。

在寻找解决方案时,我遇到了this。

GifDecoder d = new GifDecoder();
d.read( filename);
WritableImage wimg = null;
Image img = SwingFXUtils.toFXImage(d.getFrame(0), wimg);

但首先,这似乎开销太大,并且由于d.getFrame(0) 返回null 的事实,到目前为止的快速测试以NullPointerException 结束。

我在想必须有一种更简单的方法,例如 Image 上的某些属性以避免为图像设置动画,或者作为一种替代方法,不在 ImageView 中显示图像。

【问题讨论】:

【参考方案1】:

GifDecoder 不起作用有两个原因。

第一个确实是我的错误,因为传递给 read 方法的 String 应该是一个 URI:

File f = new File(filename);
d.read(f.toURI().toString());

第二个问题在于GifDecoder:为了检查输入URI,它被转换为小写,然后使用转换后的字符串在InputStream 中创建。这适用于不区分大小写的操作系统(如 Windows),但不适用于基于 NIX 的系统。因此,我不得不解决这个问题,现在它正在工作。

【讨论】:

以上是关于ImageView:动画 gif 预览的主要内容,如果未能解决你的问题,请参考以下文章

Android开发之ImageView播放GIF动画实例

imageview 动画 gif 仅显示静态

能够播放gif动画的ImageView

android开发中imageview能显示gif动画吗

在android的ImageView中添加gif图像

android 怎样显示gif动画