【flutter 动画汇总】

Flutter动画一般由这几个部分组成
Animation
AnimationController
CurvedAnimation
Tween

1)Animation 是一个范型(T),是一个抽象类,可以写成,Animation,Animation
Animation,Animation,Animation,等等,它用于指导动画,Animation 提供
了这个动画的value变化值,操作方法,状态,监听等操作。

2)AnimationController 顾名思义,是动画生成的控制类,是一个特殊的Animation对象,继承自Animation
在屏幕每刷新一帧,就会生成一个新的值,数字的产生与屏幕刷新有关,每秒中同城会产生60个数字,默认值范围是从0.1到1.0;
由于 AnimationController 继承自 Animation,所以它也具有前面讲的 Animation 的方法作用。

3)CurvedAnimation 也是继承自 Animation,主要作用就是将 AnimationController 产生的数值进行不同的曲线变化,
也就是将这个动画的运动过程转为一个非线性曲线过程。例如,我们这个数值产生不是线性增加的,而是先快后慢或者慢慢加速再减速,
这样就可以产生类似于插值器效果,例如加速再减速动画效果、反弹效果、波浪形运动效果等等。

4)我们知道,默认情况下 AnimationController 产生的数值的范围从 0.0 到 1.0。那么当我们想产生其他范围的数值或类型数据时候怎么办呢?
那么 Tween 就是解决这个问题的。
Tween 也有很多封装子类如:IntTween、ColorTween、AlignmentGeometryTween、DecorationTween、
TextStyleTween、RelativeRectTween、RectTween 等。

5)当然如果很多动画效果都要我们重复编写这些的话可能很麻烦,所以 Flutter 也封装好了一些常用的动画效果组件,
这些效果都是继承自 AnimatedWidget,而 AnimatedWidget 也是继承自StatefulWidget,是一个有状态组件。
例如:AnimatedBuilder、AnimatedModalBarrier、DecoratedBoxTransition、FadeTransition、PositionedTransition、
RelativePositionedTransition、RotationTransition、ScaleTransition、SizeTransition、SlideTransition 等,
这些组件都是继承自 AnimatedWidget 来进行封装的。

你可能感兴趣的:(flutter)