image_sequence_animator

一个简单的用于为一组图像设置动画的小部件,具有完全自定义的控件,可作为 GIF 文件的替代方案。

强烈建议阅读文档并在真实设备上运行示例项目,以充分理解和检查全部功能。

这款简单的 widget 用于动画一系列图片(又名图片序列),提供完整的自定义控件,作为 GIF 文件的替代方案。

据我所知,GIF 文件无法进行控制。通过此软件包,您将能够像控制视频一样完全控制您的图片序列。您可以循环、来回播放、更改颜色、播放、暂停、停止、跳过、倒带、重新开始等等。

如何使用

首先,将您的图片序列添加到您的 assets 中,并相应地更新 "pubspec.yaml"。

然后,按照示例创建 ImageSequenceAnimator widget。

ImageSequenceAnimator(
  "assets/ImageSequence",   //folderName 
  "Frame_",                 //fileName
  0,                        //suffixStart
  5,                        //suffixCount 
  "png",                    //fileFormat 
  60,                       //frameCount
 {Key key,
  fps               : 60,
  isLooping         : false,
  isBoomerang       : false,
  isAutoPlay        : true,
  color             : Colors.white,
  onReadyToPlay     : _onReadyToPlay,
  onStartPlaying    : _onStartPlaying,
  onPlaying         : _onPlaying,
  onFinishPlaying   : _onFinishPlaying})
  
void _onReadyToPlay(ImageSequenceAnimatorState _imageSequenceAnimator);
void _onStartPlaying(ImageSequenceAnimatorState _imageSequenceAnimator);
void _onPlaying(ImageSequenceAnimatorState _imageSequenceAnimator);
void _onFinishPlaying(ImageSequenceAnimatorState _imageSequenceAnimator);  

进一步说明

有关所有参数和方法的完整说明,请参阅 文档

  • [isLooping] 将覆盖 [isBoomerang],如果两者都设置为 true。
  • 所有 [ImageSequenceProcessCallback] 回调都将返回一个对创建的 [ImageSequenceAnimator] 状态的引用。您可以保存此实例以
    进行后续操作。
  • 使用 [ImageSequenceAnimatorState] 的
    [void setIsLooping(bool isLooping)], [void setIsBoomerang(bool isBoomerang)], [void setColor(Color color)], [void play({double from: -1.0})],
    [void rewind({double from: -1.0})], [void pause()], [void skip(double value, {double percentage: -1.0})], [void restart()], [void stop()]
    方法执行相应操作。
  • 使用 [ImageSequenceAnimatorState] 的 [double get currentTime] 和 [double get totalTime] 方法获取相应的值。

GitHub

https://github.com/aliyigitbireroglu/flutter-image-sequence-animator