胡辣汤教程02,一篇文章全面掌握Flutter里的各种补间动画

简介: Flutter = 胡辣汤

众所周知,一个用户体验很好的应用,一定有大量的精美的动画。但是大家要注意,动画不要滥用。动画对于用户体验的提升一般作用在以下几点


1. A到B,明确告知信息的关联性,直观的感受从哪儿来到哪儿去。


网络异常,图片无法展示
|


2. 提醒关注,需要用户注意到一些关键信息的时候。比如用跳跃的按钮来吸引点击。


网络异常,图片无法展示
|


3. 愉悦感,这个不用多说,loading动画啦,精美点赞动画等等。


网络异常,图片无法展示
|


动画的原理


由于视觉有残留的特性,大脑会对前后的视觉信号自动关联上。小时候有没有在字典(页数比较多)的页脚上画过小人呢?字典上的每一页就是F(Frame),你的手指拨动翻页的频率决定了视觉残留的连贯性。比如每秒翻动10页,你动画的FPS就是10。FPS越高,动画的流畅感越强。


网络异常,图片无法展示
|


  • 过去电影一般是24FPS,现在也出现了高帧率的电影


网络异常,图片无法展示
|


Flutter除了高性能以外,也附带了全面而强大的动画系统


Flutter里的两种动画类型


1. 补间动画Tween


什么叫补间动画呢?就是你提供”起点“和”终点“的属性,动画持续的时间,属性在时间行程上的中间值由补间动画来自动计算。


2. 物理模拟动画


模拟真实世界的行为,比如重力对物体的影响等等。


  • 这篇文章我们主要讲讲补间动画


Flutter动画控制器


在Flutter里做动画,一般都需要用到以下几个相关的类


  • AnimationController    动画控制器,管理动画相关状态和事件
  • Animation    动画的实例,用于获得动画进程中的差值等
  • Tween    补间对象,用来做补间计算的


创建动画,首先要创建一个动画控制器


controller = AnimationController(
    duration: const Duration(milliseconds: 1000), //动画持续的时长
    vsync: this   //作用的statefulWidget实例
);
controller.addListener((){
    //动画差值更新事件
});
controller.addStatusListener((status){
    //动画状态事件,如开始,完成等
});


Flutter补间动画


IntTween


整数补间,差值使用round取整


Animation<int> animation=IntTween(begin: 0,end: 200).animate(controller)


网络异常,图片无法展示
|


StepTween


基于IntTween的整数补间,差值使用floor取整


Animation<Int> animation=StepTween(begin:10,end: 0).animate(controller)


ColorTween


颜色值补间,用于漂亮的颜色变化


Animation<Color> animation=ColorTween(begin: Colors.grey,end: Colors.red).animate(controller)

网络异常,图片无法展示
|

ReverseTween


反向补间,不管什么补间类型,给你反着弄


Animation<int> animation=ReverseTween(IntTween(begin: 0,end: 200)).animate(controller)


SizeTween


尺寸补间,改变大小的补间


Animation<Size> animation=SizeTween(begin: Size(100,100),end: Size(200,200)).animate(controller)

网络异常,图片无法展示
|


RectTween


位置及大小补间,可同时改变大小和尺寸的补间


Animation<Rect> animation=RectTween(begin: Rect.fromLTWH(100,100,100,100),end: Rect.fromLTWH(100,100,100,100)).animate(controller)


网络异常,图片无法展示
|


ConstantTween


一个常量补间,持续给出一个固定值


Animation<int> animation = ConstantTween<int>(5).animate(controller)


Flutter中的补间动画封装得比较细,这么多种,用习惯了tweenlite,tweenmax的前端工程师会觉得不舒服吧。


点不到的爱心


还记得上一篇教程里提到的“技术肥宅”的浪漫——点不到的爱心吗?结合本节教程后实现出来就是这样的。




相关文章
|
2月前
|
前端开发
Flutter快速实现自定义折线图,支持数据改变过渡动画
Flutter快速实现自定义折线图,支持数据改变过渡动画
46 4
Flutter快速实现自定义折线图,支持数据改变过渡动画
|
3月前
Flutter-实现头像叠加动画效果
Flutter-实现头像叠加动画效果
43 0
|
3月前
Flutter-加载中动画
Flutter-加载中动画
33 0
|
3月前
Flutter-自定义表情雨下落动画
Flutter-自定义表情雨下落动画
27 0
|
3月前
Flutter-数字切换动画
Flutter-数字切换动画
20 0
|
3月前
|
开发者
Flutter 动画学习
Flutter 动画学习
|
5月前
|
数据库 Android开发
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
Android数据库框架-GreenDao入门,2024年最新flutter 页面跳转动画
|
5月前
|
前端开发 开发者 UED
【Flutter前端技术开发专栏】Flutter中的动画与过渡效果实现
【4月更文挑战第30天】Flutter UI框架以其高性能动画库著称,允许开发者轻松创建复杂动画。动画基于`Animation&lt;double&gt;`类,结合`Tween`、`Curve`和`AnimationController`实现。简单示例展示了一个点击按钮后放大效果的创建过程。此外,Flutter提供预定义动画组件和`Navigator`类实现页面过渡。`PageRouteBuilder`允许自定义过渡,而`Hero`动画则实现跨页面的平滑过渡。借助这些工具,开发者能提升应用的视觉吸引力和交互体验。
116 0
【Flutter前端技术开发专栏】Flutter中的动画与过渡效果实现
|
5月前
|
开发框架 API 开发者
Flutter的动画:实现方式与动画库的技术探索
【4月更文挑战第26天】探索Flutter动画机制与库:基础动画、自定义动画、物理动画及Lottie、AnimatedWidgets、EasyAnimations等库的应用,助开发者实现丰富动画效果,提升用户体验。同时,了解性能优化技巧,如避免重绘、利用离屏渲染和GPU加速,确保动画流畅。 Flutter为移动应用开发带来强大动画支持。
|
5月前
|
Web App开发 前端开发 iOS开发
CSS3 转换,深入理解Flutter动画原理,前端基础图形
CSS3 转换,深入理解Flutter动画原理,前端基础图形
下一篇
无影云桌面