动画原理
在任何系统的UI
框架中,动画实现的原理都是相同的,即:在一段时间内,快速地多次改变UI
外观;由 于人眼会产生视觉暂留,所以最终看到的就是一个“连续”的动画,这和电影的原理是一样的。我们将UI
的一次改变称为一个动画帧,对应一次屏幕刷新,而决定动画流畅度的一个重要指标就是帧率FPS
(Frame Per Second
),即每秒的动画帧数。很明显,帧率越高则动画就会越流畅!一般情况下, 对于人眼来说,动画帧率超过16 FPS
,就基本能看了,超过32 FPS
就会感觉相对平滑,而超过32 FPS
,大多数人基本上就感受不到差别了。由于动画的每一帧都是要改变UI
输出,所以在一个时间段内连续的改变UI
输出是比较耗资源的,对设备的软硬件系统要求都较高,所以在UI
系统中,动画的平均帧率是重要的性能指标,而在Flutter
中,理想情况下是可以实现60FPS
的,这和原生应用能达到的帧率是基本是持平的。
Flutter
动画主要分类
- 隐式动画;
- 显式动画;
- 自定义隐式动画;
- 自定义显式动画;
-
Hero
动画。