一 概述

  • Rive是Flare的升级版本,是一个实时交互设计和动画工具。
  • 文件的后缀名是.riv,加载动画时使用的是Rive Flutter runtime
  • Rive支持跨平台,支持Web,IOS,Android,Flutter,C++等终端

二 Rive

2.1 仓库地址

Rive:https://github.com/rive-app/rive-flutter

2.2 插件地址

rive 0.7.9:https://pub.dev/packages/rive

2.3 插件的安装及卸载

插件安装

打开CMD终端,执行如下指令(自动添加pubspec.yaml依赖)

flutter pub add rive

插件卸载

打开CMD终端,执行如下指令(pubspec.yaml依赖被删除)

flutter pub remove rive

三 Rive素材

3.1 素材资源

https://rive.app/community/

3.2 素材下载

  • 在素材页面,选择素材进入详情页,选择右侧的Open in Preview Player打开

  • 查看可供执行的Animation(如图:Walk,Hit,In)

  • 返回素材详情页进行下载(下载后的文件名为205-467-zombie-character.riv可改名为zombie.riv)

四 示例

4.1 添加Riv依赖(assets下所有文件)

 assets:- images/- assets/

4.2 代码(通过设置不同名称,显示动画效果)

class _MyHomePageState extends State<MyHomePage>
{//riveArtboard _riveArtboard;RiveAnimationController _controller;bool get isPlaying => _controller?.isActive ?? false;@overridevoid initState() {super.initState();rootBundle.load("assets/zombie.riv").then((value) async {final file = RiveFile.import(value);final artboard = file.mainArtboard;artboard.addController(_controller = SimpleAnimation('idle'));setState(() => _riveArtboard = artboard);});}@overrideWidget build(BuildContext context) {return Scaffold(body: Column(children: [Flexible(child:  _riveArtboard == null ?  Container(color: Colors.blue,) : Rive(artboard:_riveArtboard, alignment:Alignment.center, fit:BoxFit.contain, )),Column(mainAxisAlignment:MainAxisAlignment.start,crossAxisAlignment: CrossAxisAlignment.center,children: [RaisedButton(child: Text("Walk"),onPressed: (){setState(() { _riveArtboard.addController(_controller = SimpleAnimation('Walk'));});}),RaisedButton(child: Text("Hit"),onPressed: (){setState(() { _riveArtboard.addController(_controller = SimpleAnimation('Hit'));});}),RaisedButton(child: Text("In"),onPressed: (){setState(() {_riveArtboard.addController(_controller = SimpleAnimation('In'));});})],)],),floatingActionButton: FloatingActionButton(onPressed: _togglePlay,tooltip: isPlaying ? 'Pause' : 'Play',child: Icon(isPlaying ? Icons.pause : Icons.play_arrow,),));}void _togglePlay() {setState(() => _controller.isActive = !_controller.isActive);}
}

4.3 效果图

Flutter开发之——动画-Rive相关推荐

  1. Flutter开发之——动画,移动终端软件开发

    vsync: this, lowerBound: 0, upperBound: 1, duration: Duration(milliseconds: 1000), ) //动画开始和结束值 anim ...

  2. Flutter开发之——动画-Gif动画

    一 概述 Image组件支持加载GIF图片 GIF本身是一种动态的图片,其中定义了每一帧的播放时长和动画的总时长 二 添加GIF 2.1 素材 2.2 添加GIF 将素材添加到images文件夹中 在 ...

  3. flutter 移动通知_Flutter开发之动画

    动画作为产品的重要组成部分,是提升用户体验的重要方式,一个恰当的动画不仅能够缓解用户因为等待而带来的情绪焦躁,还会增加应用的整体用户体验.因此,在应用中增加动画的相关功能,可以增强用户的粘性. 动画的 ...

  4. Flutter开发——动画原理及核心类

    动画的原理 实际上动画是一段连续的画面,也叫做"动起来的画面",这些画面是由一连串静态的图片组成的,而一个动画画面又叫做"动画帧". 帧又被分为关键帧和过渡帧, ...

  5. Flutter开发之官网的第一个例子实现(46)

    参考: 编写您的第一个 Flutter App Flutter开发我的收藏列表 准备数据:列表数据使用数组存储,选中的数据可以使用Set存储(因为set可以自动去重). 界面列表:使用ListView ...

  6. 【Flutter】Animation 动画 ( AnimatedBuilder 动画使用流程 | 创建动画控制器 | 创建动画 | 创建动画作用的组件 | 关联动画与组件 | 动画执行 )

    文章目录 ◯.AnimatedBuilder 引入 一.创建动画控制器 二.创建动画 三.创建动画作用的组件 四.创建 AnimatedBuilder 关联动画与组件 五.动画运行 六.完整代码示例 ...

  7. Flutter开发系列教程

    flutter Developers Demo 不定期分享Flutter开发资讯与教程 文章地址github.com/flyou/flutt- 本人时间有限,并不能保证定期更新,但是不定期更新是肯定的 ...

  8. Flutter开发日常练习-小猫咪杂货店(新增欢迎页,广告页和侧滑页面)

    养小猫咪的伙伴来我的店铺逛逛吧!抖音商城搜索#早睡早起的猫咪小铺子 Flutter开发日常练习-小猫咪杂货店(新增动画和跳转抖音)_workersJiaDa的博客-CSDN博客URL Launcher ...

  9. Flutter 数字增加动画

    在移动应用开发中,流畅的动画不仅可以给人留下美好的印象,还可以提高用户体验.在Flutter开发中,官方提供了简洁且强大的动画API,比较核心的有AnimationController和Animati ...

最新文章

  1. 使用 JMeter 进行压力测试
  2. centos7通过yum升级内核到最新版本
  3. 【SSL】java keytool工具创建自己的(localhost)(JKS)证书库
  4. 322. 零钱兑换 golang 动态规划
  5. JQuery Datatables —— 自定义导出列
  6. 求f(x,n)(信息学奥赛一本通-T1166)
  7. python字符的大小比较_python中字符串怎么比较大小
  8. 防止开源的加拉帕戈斯综合症,系统软件和开源都是手段不是目的
  9. 华为HMS核心服务全面开放 赋能开发者共筑智慧新生态
  10. eclipse git拉取失败_Git(四):分支
  11. Coprime Sequence
  12. Android6,androidstudio游戏开发教程
  13. linux课程以及Linux主要学习哪些内容
  14. 2022骨传导蓝牙耳机推荐,最好用的几款骨传导耳机
  15. 关于win7 出现两个本地连接不能上网的问题?
  16. 30ea是什么意思_数量单位EA是什么意思?EACH? 单位EA是什么意思
  17. PS 的形状工具的布尔运算
  18. 详解created和mounted区别与使用场景
  19. n皇后问题-回溯法求解
  20. k8s里面的iptables和ipvs有什么区别?怎么选?为什么选择ipvs

热门文章

  1. 导读:Python 简史
  2. P1775 石子合并(弱化版)(区间DP)
  3. 常用知识总结(二) 之 电容谐振频率点和阻抗
  4. 语音转文字,视频转文字的新大陆!--飞书(好用记得点个赞)
  5. 网站合集(我收藏的网址)
  6. 手机号码格式正则验证
  7. 一张图搞清楚HDMI和AV接口
  8. 极路由B70平台失联后如何免插件离线开启root权限
  9. 一个例子搞懂递归CTE
  10. 【GDKOI2013】贪吃蛇 题解