Flutter开发之动画

动画作为产品的重要组成部分,是提升用户体验的重要方式,一个恰当的动画不仅能够缓解用户因为等待而带来的情绪焦躁,还会增加应用的整体用户体验。因此,在应用中增加动画的相关功能,可以增强用户的粘性。

动画的原理

不管是Android平台还是iOS平台,我们在使用应用时都能看到一些炫酷的动画效果。作为移动应用的重要组成部分,动画是提高用户体验的重要手段,一个恰当的动画,不仅能够缓解用户因为等待而带来的情绪问题,还会提升用户使用的体验。
事实上,不管是什么视图框架,动画的实现原理都是相同的,即在一段有限的时间内,多次快速地改变视图外观来实现一个连续播放的效果。视图的一次改变即称为一个动画帧,对应一次屏幕刷新,而决定动画流畅度的一个重要指标就是帧率FPS(Frame Per Second缩写),即每秒的动画帧数。很明显,帧率越高则动画就会越流畅。
目前,大多数设备的屏幕刷新频率可以到达60Hz,而对于人眼来说,动画帧率超过16FPS就认为是流畅的,超过32FPS基本就感受不到任何卡顿。由于动画的每一帧都需要改变视图的输出,所以在一个时间段内连续的改变视图输出是比较耗费资源的,对设备的软硬件系统要求也比较高。作为衡量一个视图框架优劣的标准,Flutter框架在理想情况下是可以实现60FPS的,这和原生应用的帧率标准是基本是持平的。
同时,为了方便开发者创建并使用动画,不同的视图框架对动画都进行了高度的抽象和封装,比如在Android开发中,可以使用XML来描述一个动画然后再设置给一个视图对象。同样,Flutter也对动画进行了高度的抽象,并且提供了Animation、Curve、Controller、Tween等四个动画对象。
Animation是Flutter动画的核心抽象类,包含动画的当前值和状态两个属性。AnimationController是Animation的控制器,动画的开始、结束、停止、反向均由它控制,可以通过Listener和StatusListener来管理动画状态的改变。

动画API

在Flutter中,学习动画相关的开发,其实就是围绕Animation、Curve、Controller、Twe

你可能感兴趣的:(Flutter入门与实战)