Flutter开发之——动画-帧动画

一 概述

  • 帧动画:一帧一帧静态图像快速播放形成的动画称为帧动画
  • Flutter中帧动画在实现时,通过Tween动画(begin,end)获取到的静态图像设置Image来实现的

二 添加图片资源

2.1 素材

2.2 添加素材依赖

  • 在项目根目录下创建images文件夹,将素材图片copy到images文件夹下

  • 在pubspec.yarm文件夹中添加图片素材路径

      assets:
         - images/img_1.jpg
         - images/img_2.jpg
         - images/img_3.jpg
         - images/img_4.jpg
         - images/img_5.jpg
         - images/img_6.jpg
    
  • 执行右上角的Pub get

三 实现说明

3.1 图片帧和动画关联起来

Tween<double>(begin: 0,end: images.length.toDouble())

3.2 将获取到的值(第几帧图片)给Image组件显示

Center(child: Image.asset(images[animation.value.toInt()]),)

四 示例

4.1 代码

  //帧动画
  Animation<double> animation;
  AnimationController controller;
  //素材列表
  List<String> images=["images/img_1.jpg","images/img_2.jpg","images/img_3.jpg","images/img_4.jpg","images/img_5.jpg","images/img_6.jpg"];
  
  @override
  void initState() {
    super.initState();
    controller=AnimationController(vsync: this,duration:Duration(milliseconds: 700) );
    animation=Tween<double>(begin: 0,end: images.length.toDouble()).animate(controller);
    controller.forward();
    animation.addStatusListener((status) {
      if (status==AnimationStatus.completed) {controller.forward(from: 0);} //循环执行动画
    });
  }
  //显示
 body:Center(child: Image.asset(images[animation.value.toInt()]),), 

4.2 效果图

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutte中可以使用Flutter动画库来创建聊天语音播放动画。在Flutter中,动画可以通过使用AnimationController和Tween来实现。 首先,需要创建一个AnimationController对象来控制动画的进度。可以设置动画的持续时间和一个曲线来定义动画的速度曲线。然后,可以使用Tween来定义动画的初始值和结束值。 在聊天语音播放动画中,可以将AnimationController对象与某个按钮或触发器关联起来,以便在触发器被点击或滑动时开始动画。可以使用addStatusListener来监听动画的状态改变,例如动画开始、结束或循环等。 在动画开始时,可以通过调用AnimationController的forward方法来启动动画。然后,在动画的每一中,可以使用Tween的animate方法来根据动画的进度值获取当前的属性值。可以使用AnimatedBuilder小部件来包裹需要应用动画的相关小部件,并在builder回调中更新这些小部件的属性。 在聊天语音播放动画中,可以使用AnimatedContainer来实现音量动画效果,通过设置container的高度或宽度的变化来表示音量的大小。也可以结合使用AnimatedOpacity来实现透明度的变化效果,以模拟语音播放的动态效果。 最后,在动画播放结束时,可以使用AnimationController的reverse方法来反向播放动画,或者使用reset方法来复位动画的进度。 综上所述,通过使用Flutter动画库中的AnimationController、Tween和相关小部件,可以实现聊天语音播放动画,给用户带来更加生动和交互性的体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值