flutter 专题十七 Flutter Flar动画实战

Flutter Flar动画实战

在Flare动面出现之前,Flare动画大体可以分为使用AnimationController控制的基础动画以及使用Hero的转场动画,如果遇到一些复杂的场景,使用这些动画方案实现起来还是有难度的。不过,随着Flutter开始支持Flare矢量动面,Flutter的动画开发也变得越来越简单。事实上,Flare动画是一种类似于Lottie的矢量动画方案,使用Flare动面不仅可以有效减少安装包的体积,还能实现传统动画方案无法实现的复杂动画效果。

Rive是一个专业制作Flare矢量动画的网站,网站本身提供了很多免费Flare动画供开发者下载学习。除此之外,Rive还提供了Flare动画的使用和制作教程。为了便于学习和使用Rive网站的Flare动画,需要先注册一个Rive官方账号,如下图所示。
 Rive以工程形式来创建和管理Flare动画项目,目前支持创建的Flare动画项目类型有两类,分别是Nima和Flare,区别如下:
• Nima:仅支持光栅图,主要用来为游戏引擎和应用构建2D动画。
• Flare:支持矢量图与光栅图,主要用来为移动App和Web构建实时、高效的动画,同时还支持构建游戏动画。
由于Nima主要用于构建2D游戏动画,所以对于Flutter应用开发来说,只需要新建一个Flare类型的项目即可。
目前,创建Flare项目主要有两种方式,一种是在Rive官网中进行创建,另一种则是通过Rive的客户端进行创建。此处以Rive客户端方式来说明如何创建Flare项目,如下图所示。


首先,打开Rive客户端,然后点击右上角的新建按钮创建一个 Flare空项目,然后就可以开始设计了,如下图所示。

不过,设计并制作Flare动画是一项专业性极强的工作,一般都由设计同学完成,开发同学只需要集成到项目中即可。如果需要为了制作Flare动画,官方也提供了详细的Flare动画制作教程。如果只是想体验一下Flare动画的魅力,那么可以使用Rive社区提供的免费Flare动画,如下图所示。


打开一个免费Flare动画项目,点击面板中【OPEN IN RIVE】选项打开Flare动画源文件,然后点击 【DownLoad】将项目下载到本地,如下图所示。

可以看到,下载到本地的Flare动画文件是.riv格式的文件,也是Flare动面需要加载的文件。需要注意的是,Flutter默认情况下是不识别Flare动画文件的,开发前需要我们先安装一下rive插件库,如下所示。

dependencies:…rive: ^0.11.8

接着,将之前下载到本地的Flare动画文件拷贝到assets资源文件中,然后在pubspec.yaml配置文件中注册动画文件。现在,我们就可以使用rive库提供的RiveAnimation组件来加载这个动画文件,如下所示。

RiveAnimation.asset('assets/rocket.riv')

其中,asset表示动画文件的路径,是一个必传参数。除了支持加载项目本地的文件外,RiveAnimation还支持网络图片。

同时,一个Flare动画文件是由多个动画节点构成的,通过这些动画节点,我们就可以很容易对动画进行精准的控制。我们可以打开Flare动画文件,然后在源文件面板的左下角来查看这些动画节点,如下图所示。


事实上,为了更好的在项目中使用Flare动画,并对动画进行精准控制,rive插件提供了一个RiveAnimationController控制器。借助它,开发者可以很容易的监听Flare动画的各种状态,以及对动画节点进行更精准的控制,如下所示。

class PlayPauseAnimationState extends State<PlayPauseAnimation> {late RiveAnimationController controller;void togglePlay() => setState(() => controller.isActive = !controller.isActive);bool get isPlaying => controller.isActive;@overridevoid initState() {super.initState();controller = SimpleAnimation('idle');}@overrideWidget build(BuildContext context) {return Scaffold(body: RiveAnimation.asset('assets/off_road_car.riv',fit: BoxFit.cover,controllers: [controller],),floatingActionButton: FloatingActionButton(onPressed: togglePlay,tooltip: isPlaying ? 'Pause' : 'Play',child: Icon(isPlaying ? Icons.pause : Icons.play_arrow),),);}
}

在上面的代码中,我们使用RiveAnimation组件加载了一个本地Flare动画,然后再通过RiveAnimationController来控制动画的启动与运行。可以发现,相比传统的动画方案,Flare动画更加灵活,可以用它来实现一些复杂的动画效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/477422.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp 自定义popup 弹窗 简单封装(微信小程序)

效果并不完整&#xff0c;有需求可以自行修改 适用于vue2 弹窗只支持居中弹出和下方弹出&#xff0c;内容可以自定义 效果图 子组件 代码 新建组件文件夹 zPopup <template><view class"zPopup_show" v-if"style_show":class"mod…

网络爬虫——常见问题与调试技巧

在开发网络爬虫的过程中&#xff0c;开发者常常会遇到各种问题&#xff0c;例如网页加载失败、数据提取错误、反爬机制限制等。以下内容将结合实际经验和技术方案&#xff0c;详细介绍解决常见错误的方法&#xff0c;以及如何高效调试和优化爬虫代码。 1. 爬虫过程中常见的错误…

[面试]-golang基础面试题总结

文章目录 panic 和 recover**注意事项**使用 pprof、trace 和 race 进行性能调试。**Go Module**&#xff1a;Go中new和make的区别 Channel什么是 Channel 的方向性&#xff1f;如何对 Channel 进行方向限制&#xff1f;Channel 的缓冲区大小对于 Channel 和 Goroutine 的通信有…

从 HTML 到 CSS:开启网页样式之旅(二)—— 深入探索 CSS 选择器的奥秘

从 HTML 到 CSS&#xff1a;开启网页样式之旅&#xff08;二&#xff09;—— 深入探索 CSS 选择器的奥秘 前言一、CSS基本选择器1. 通配选择器2. 元素选择器3. 类选择器4. id选择器5.基本选择器总结 二、CSS复合选择器1. 后代选择器2. 子选择器3. 相邻兄弟选择器4.交集选择器5…

Python的3D可视化库 - vedo (2)visual子模块 基本可视化行为

文章目录 1. visual模块的继承关系2. 基类CommonVisual的方法2.1 获取对象信息2.1.1 对象本身信息2.1.2 对象的查找表2.1.3 对象标量范围2.1.4 对象缩略图 2.2 呈现对象2.2.1 在窗口显示1.2.2 对象可见性 2.2.3 对象颜色2.2.4 对象透明度 2.3 添加标度条2.3.1 2D标度条2.3.2 3D…

Typora+PicGo+云服务器搭建博客图床

文章目录 前言一. 为什么要搭建博客图床&#xff1f;1.1 什么是图床&#xff1f;1.2 为什么要搭建博客图床? 二. 安装软件三. 配置阿里云OSS3.1 注册,开通对象储存3.2 创建bucket3.3 找到你的地域节点3.4 accessKeyId和accessKeySecret3.5 给你的阿里云账户充值 四. 配置4.1 配…

下载安装Android Studio

&#xff08;一&#xff09;Android Studio下载地址 https://developer.android.google.cn/studio 滑动到 点击下载文档 打开新网页 切换到english ![](https://i-blog.csdnimg.cn/direct/b7052b434f9d4418b9d56c66cdd59fae.png 等待一会&#xff0c;出现 点同意后&#xff0…

【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感

本文将介绍如何使用LSTM训练一个能够创作诗歌的模型。为了训练出效果优秀的模型&#xff0c;我整理了来自网络的4万首诗歌数据集。我们的模型可以直接使用预先训练好的参数&#xff0c;这意味着您无需从头开始训练&#xff0c;即可在自己的电脑上体验AI作诗的乐趣。我已经为您准…

大语言模型---梯度的简单介绍;梯度的定义;梯度计算的方法

1. 梯度介绍 如果我们在一座山上&#xff08;一个山的坡度有很多&#xff0c;陡峭的&#xff0c;平缓的&#xff09;&#xff0c;想要从山顶下山。而梯度就像告诉我们如何沿着最陡的下坡路线走&#xff0c;以尽快到达山脚&#xff08;最低点&#xff09;。 2. 梯度的定义 梯度…

鸿蒙学习高效开发与测试-测试工具(5)

文章目录 1、单元测试2、集成测试1. UI 测试框架2. DevEco Testing 测试平台2.1 稳定性测试2.2 场景化性能测试2.3 回归测试2.4 基础质量测试服务3. 命令行测试工具3.1 DevEco Testing SmartPerf3.2 DevEco Testing wukong3、专项测试1. 应用与服务体检2. 专项测试云测平台鸿蒙…

NFS搭建

NFS搭建 单节点安装配置服务器安装配置启动并使NFS服务开机自启客户端挂载查看是否能发现服务器的共享文件夹创建挂载目录临时挂载自动挂载 双节点安装配置服务器安装配置服务端配置NFS服务端配置Keepalived编辑nfs_check.sh监控脚本安装部署RsyncInofity 客户端 单节点安装配置…

基于CNN+RNNs(LSTM, GRU)的红点位置检测(pytorch)

1 项目背景 需要在图片精确识别三跟红线所在的位置&#xff0c;并输出这三个像素的位置。 其中&#xff0c;每跟红线占据不止一个像素&#xff0c;并且像素颜色也并不是饱和度和亮度极高的红黑配色&#xff0c;每个红线放大后可能是这样的。 而我们的目标是精确输出每个红点的…

使用 Elastic 收集 Windows 遥测数据:ETW Filebeat 输入简介

作者&#xff1a;来自 Elastic Chema Martinez 在安全领域&#xff0c;能够使用 Windows 主机的系统遥测数据为监控、故障排除和保护 IT 环境开辟了新的可能性。意识到这一点&#xff0c;Elastic 推出了专注于 Windows 事件跟踪 (ETW) 的新功能 - 这是一种强大的 Windows 原生机…

leetcode刷题记录(四十二)——101. 对称二叉树

&#xff08;一&#xff09;问题描述 . - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/symmetric-tree/description/给你…

LeetCode 力扣 热题 100道(九)反转链表(C++)

给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 方法一&#xff1a;迭代法 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNod…

取电快充协议芯片,支持全协议、内部集成LDO支持从UART串口读取电压电流消息

H004D 是一款支持全协议的受电端诱骗取电协议芯片&#xff0c;支持宽电压输入 3.3V~30V&#xff0c;芯片内部集成LDO&#xff0c;可输出 3.3V电压, 支持 通过UART 串口读取电压电流&#xff0c;支持定制功能&#xff0c;芯片采用QFN_20封装&#xff0c;线路简单&#xff0c;芯片…

FreeRTOS——事件标志组

一、概念与应用 1.1概念 事件是实现任务与任务或任务与中断间 通信的机制&#xff0c;用于同步&#xff0c;无数据传输。&#xff08;注意与二值信号量区分&#xff09; 与信号量不同的是&#xff0c;事件可以实现一对多、多对多的同步&#xff0c;即一个任务可以等待多个事…

window11编译pycdc.exe

一、代码库和参考链接 在对python打包的exe文件进行反编译时&#xff0c;会使用到uncompyle6工具&#xff0c;但是这个工具只支持python3.8及以下&#xff0c;针对更高的版本的python则不能反编译。 关于反编译参考几个文章&#xff1a; Python3.9及以上Pyinstaller 反编译教…

【100ask】IMX6ULL开发板用SPI驱动RC522模块

目录 一、问题汇总&#xff1a; 1.无法寻卡 2.寻卡不稳定 二、修改设备树 三、驱动程序 四、测试程序 1.rc522_ap.c 2.rc522_app.h 3.rc522_test.c 4.Makefile 前言&#xff1a; CSDN上大部分对于RC522的文章都是正点的&#xff0c;虽然文章写的挺详细&#xff0c;两…

springboot购物推荐网站的设计与实现(代码+数据库+LW)

摘要 随着信息互联网购物的飞速发展&#xff0c;一般企业都去创建属于自己的电商平台以及购物管理系统。本文介绍了东大每日推购物推荐网站的开发全过程。通过分析企业对于东大每日推购物推荐网站的需求&#xff0c;创建了一个计算机管理东大每日推购物推荐网站的方案。文章介…