Flutter学习之旅(四)Flutter动画(1)动画基础介绍

前言

本篇将介绍Flutter中动画。首先来看下Flutter的动画基础概念和相关类

  • Animation:Flutter中动画的核心类
  • AnimationController:动画管理类
  • Tween:补间对象,用于计算动画使用的数据范围之间的插值。
  • Listeners和StatusListeners:用于监听动画状态改变
  • CurvedAnimation:用于定义非线性曲线动画

1. Animation介绍

Flutter中的动画核心类,我们可以理解为Animation是Flutter中动画的基类。它是个抽象类(abstract),所以不能够直接创建其对象来使用动画。Animation对象可以在设定的动画执行时间内生成在两个值之间生成插值数。Animation对象的输出可以是线性,非线性。

一种常用的动画类型是Animation,当然还有可能是double之外的其数据类型,例如Animation 或Animation 。

2. CurvedAnimation非线性动画

CurvedAnimation继承Animation,构建其对象的方式是:

构造函数中传入控制器和要执行的曲线方式。这里不做过多的介绍。

3. AnimationController动画管理类

AnimationController是一个特殊的Animation对象。其继承自Animation ,因此可以在需要Animation对象的任何地方使用它。默认情况下,AnimationController在给定的持续时间内线性生成从0.0到1.0的值。

上述是AnimationController 对象的创建方式,构造函数第一个参数是动画执行的时间,第二个vsync传入是防止动画离屏之后继续消耗资源。AnimationController 提供了几个常用的方法。

4. Tween补间值生成类

AnimationController对象的范围为0.0到1.0。如果需要不同的范围或不同的数据类型,可以使用Tween将动画配置为插入到不同的范围或数据类型。例如,以下Tween从0.0变为500.0:

构造函数传入只需要传入begin和end两个值,当然这里不一定只是double值。

5. Listeners和StatusListeners动画监听

Animation对象可以有Listeners和StatusListeners,用addListener()和addStatusListener()。只要动画的值发生变化,就会调用监听器。我们通常可用调用setState() 以将动画重置状态。动画开始,结束,前进或后退时调用StatusListener,下列是Flutter提供动画的监听方法。

动画状态如下:

OK,下面来看个简单的Flutter动画Demo。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年6月10日
下一篇 2018年6月11日

相关推荐