Flutter Flar动画使用实战示例

 更新时间:2023年08月06日 16:09:00   作者:xiangzhihong  
这篇文章主要为大家介绍了Flutter Flar动画使用实战示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Flare动画

在Flare动画出现之前,Flare动画大体可以分为使用AnimationController控制的基础动画以及使用Hero的转场动画,如果遇到一些复杂的场景,使用这些动画方案实现起来还是有难度的。

不过,随着Flutter开始支持Flare矢量动面,Flutter的动画开发也变得越来越简单。事实上,Flare动画是一种类似于Lottie的矢量动画方案,使用Flare动面不仅可以有效减少安装包的体积,还能实现传统动画方案无法实现的复杂动画效果。

Flare矢量动画的网站

Rive是一个专业制作Flare矢量动画的网站,网站本身提供了很多免费Flare动画供开发者下载学习。除此之外,Rive还提供了Flare动画的使用和制作教程。为了便于学习和使用Rive网站的Flare动画,需要先注册一个Rive官方账号,如下图所示。

Rive以工程形式来创建和管理Flare动画项目,目前支持创建的Flare动画项目类型有两类,分别是Nima和Flare,区别如下:

• Nima:仅支持光栅图,主要用来为游戏引擎和应用构建2D动画。

• Flare:支持矢量图与光栅图,主要用来为移动App和Web构建实时、高效的动画,同时还支持构建游戏动画。

由于Nima主要用于构建2D游戏动画,所以对于Flutter应用开发来说,只需要新建一个Flare类型的项目即可。

创建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动画文件,然后在源文件面板的左下角来查看这些动画节点,如下图所示。

RiveAnimationController控制器

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

class PlayPauseAnimationState extends State<PlayPauseAnimation> {
  late RiveAnimationController controller;
  void togglePlay() => setState(() => controller.isActive = !controller.isActive);
  bool get isPlaying => controller.isActive;
  @override
  void initState() {
    super.initState();
    controller = SimpleAnimation('idle');
  }
  @override
  Widget 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动画更加灵活,可以用它来实现一些复杂的动画效果。

以上就是Flutter Flar动画使用实战示例的详细内容,更多关于Flutter Flar动画效果的资料请关注脚本之家其它相关文章!

相关文章

  • Android获取手机SIM卡运营商信息的方法

    Android获取手机SIM卡运营商信息的方法

    这篇文章主要介绍了Android获取手机SIM卡运营商信息的方法,可获得手机的型号、运营商信息及系统版本等,需要的朋友可以参考下
    2014-09-09
  • Android简单实现启动画面的方法

    Android简单实现启动画面的方法

    这篇文章主要介绍了Android简单实现启动画面的方法,结合实例形式分析了启动画面核心代码及相关函数,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Android listview多视图嵌套多视图

    Android listview多视图嵌套多视图

    这篇文章主要介绍了Android listview多视图嵌套多视图 的相关资料,需要的朋友可以参考下
    2016-02-02
  • EditText实现输入限制和校验功能实例代码

    EditText实现输入限制和校验功能实例代码

    本文通过实例代码给大家介绍EditText实现输入限制和校验功能,感兴趣的朋友参考下吧
    2017-08-08
  • 使用kotlin协程提高app性能(译)

    使用kotlin协程提高app性能(译)

    这篇文章主要介绍了使用kotlin协程提高app性能(译),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Android BaseAdapter应用实例

    Android BaseAdapter应用实例

    这篇文章主要介绍了Android BaseAdapter应用方法,结合生成联系人Items的实例形式分析了BaseAdapter的使用技巧,需要的朋友可以参考下
    2016-01-01
  • Android实现网易云音乐的旋转专辑View

    Android实现网易云音乐的旋转专辑View

    这篇文章主要为大家详细介绍了Android实现网易云音乐的旋转专辑View,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • Android网易有道词典案例源码分享

    Android网易有道词典案例源码分享

    这篇文章主要为大家分享了Android网易有道词典案例源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 基于RxJava2实现的简单图片爬虫的方法

    基于RxJava2实现的简单图片爬虫的方法

    本篇文章主要介绍了基于RxJava2实现的简单图片爬虫的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Android开发中include控件用法分析

    Android开发中include控件用法分析

    这篇文章主要介绍了Android开发中include控件用法,结合实例形式分析了Android界面布局中include控件的使用技巧,需要的朋友可以参考下
    2016-10-10

最新评论