在颤动中单击时停止 GIF 动画

Posted

技术标签:

【中文标题】在颤动中单击时停止 GIF 动画【英文标题】:Stop GIF animation on click in flutter 【发布时间】:2020-08-11 12:22:26 【问题描述】:

我是 Flutter 的新手。我试图在点击时暂停 GIF 图像的动画并在第二次点击时恢复动画,但我不知道如何在颤振中实现它。 我正在为此使用资产图像,

Image.asset('images/xyz.gif')

但问题是图像连续动画。所以,任何人都知道如何实施,请帮助我。

【问题讨论】:

【参考方案1】:

据我所知,在 Flutter 中,您不能使用 Image 小部件来控制 gif 的速度、持续时间、循环等等。

但我知道 this library 称为 flutter_gifimage 可以帮助您做到这一点。

使用它,您可以使用类似于动画控制器的东西来控制 gif 动画的方式。以下是您可以使用它执行的操作的示例:

示例用法:

首先声明一个 GifController 和一个 GifImage,它基本上是一个带有控制器的“图像”。

GifController controller= GifController(vsync: this);


     GifImage(
          controller: controller,
          image: AssetImage("images/animate.gif"),
     )

现在您可以像控制任何其他动画控制器一样控制它:

// loop from 0 frame to 29 frame
 controller.repeat(min:0,max:29,period:Duration(millseconds:300));

 // jumpTo thrid frame(index from 0)
 controller.value = 0;

 // from current frame to 26 frame
 controller.animateTo(26);

【讨论】:

以上是关于在颤动中单击时停止 GIF 动画的主要内容,如果未能解决你的问题,请参考以下文章

在 UWP 的 WebView 中停止 GIF 动画

停止循环的 GIF 图标

如何使 gif 在 UIWebView 中永不停止?

以编程方式停止 GIF 动画

停止加载 gif 动画,鼠标悬停开始激活

C# Windows 窗体中的 WMP 在显示 GIF 后停止播放声音