单击颤动时停止 GIF 动画

Kau*_*iya 3 dart flutter flutter-layout flutter-animation flutter-image

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

Image.asset('images/xyz.gif')
Run Code Online (Sandbox Code Playgroud)

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

Wil*_*son 6

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

但我知道这个叫做 flutter_gifimage 的可以帮助你做到这一点。

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

在此处输入图片说明

用法示例:

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

GifController controller= GifController(vsync: this);


     GifImage(
          controller: controller,
          image: AssetImage("images/animate.gif"),
     )
Run Code Online (Sandbox Code Playgroud)

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

// 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);
Run Code Online (Sandbox Code Playgroud)