【Flutter 实战】17篇动画系列文章带你走进自定义动画
老孟导读:Flutter 动画系列文章分为三部分:基础原理和核心概念、系统动画组件、8篇自定义动画案例,共17篇。
动画核心概念
在开发App的过程中,自定义动画必不可少,Flutter 中想要自定义动画,首先要理解 Flutter 动画实现的基本原理及相关概念。
第1-4篇介绍了 Flutter 动画中最重要的三个概念以及三者之间的关系:
-
AnimationController:动画控制器,控制动画的播放、停止等。继承自Animation< double >,是一个特殊的Animation对象,默认情况下它会线性的生成一个0.0到1.0的值,类型只能是 double 类型,不设置动画曲线的情况下,可以设置输出的最小值和最大值。 -
Curve:动画曲线,作用和Android中的Interpolator(差值器)类似,负责控制动画变化的速率,通俗地讲就是使动画的效果能够以匀速、加速、减速、抛物线等各种速率变化。 -
Tween:将 AnimationController 生成的 [0,1]值映射成其他属性的值,比如颜色、样式等。
第5篇讲解了动画序列 TweenSequence,其将多个 Tween 或者 Curve 关联到一个 AnimationController 中。
文章链接:
-
动画核心-AnimationController:http://laomengit.com/guide/animation/AnimationController.html -
动画核心-Tween:http://laomengit.com/guide/animation/Tween.html -
动画核心-Curve:http://laomengit.com/guide/animation/Curve.html -
动画核心-总结:http://laomengit.com/guide/animation/AnimationSummary.html -
动画序列 TweenSequence:http://laomengit.com/guide/animation/TweenSequence.html
系统动画组件
第6篇介绍了20多种系统动画组件的用法以及如何选取使用哪一种组件,乍一看20多种系统动画组件非常多,但其仅分为隐式动画组件 和 显式动画组件 两种,用法基本一样。文章地址:http://laomengit.com/guide/animation/AnimatedWidget.html
第7篇讲解 AnimatedList 列表增/删动画组件:http://laomengit.com/guide/animation/AnimatedList.html
第8篇讲解 Hero 共享动画组件:http://laomengit.com/guide/animation/Hero.html
第9篇讲解 Material motion 动画,Material motion 是 Flutter 1.17 大会上 Flutter 团队发布的新的 Animations 软件包,该软件包提供了实现新的 Material motion 规范的预构建动画:http://laomengit.com/guide/animation/TranslationAnimations.html
自定义动画
第10篇案例-自定义路由动画:http://laomengit.com/guide/animation/NavigatorAnimation.html
第11篇案例-“孔雀开屏”的动画效果:http://laomengit.com/guide/animation/Peacock.html
第12篇案例-自定义渐变进度条:http://laomengit.com/guide/animation/CircleProgress.html
第13篇案例-自绘玫瑰:http://laomengit.com/guide/animation/Rose.html
第14篇案例-仿掘金点赞:http://laomengit.com/guide/animation/JuejinLike.html
第15篇案例-酷炫的3D效果:http://laomengit.com/guide/animation/3DPerspective.html
第16篇案例-涟漪效果:http://laomengit.com/guide/animation/WaterRipple.html
第17篇案例-雷达扫描效果:http://laomengit.com/guide/animation/Radar.html
结尾
很多人都觉得 Flutter 动画比较难,不好入门,很多读者也反馈如何才能自定义动画?下面是我对学习 Flutter 动画的一些方法:
-
第一步:详细的阅读第1-5篇,也就是基础概念部分,当然对于初学者来说,阅读完后依然会迷茫,不理解,没关系,记住即可。 -
第二步:使用系统动画组件完成一些简单的动画效果,照猫画虎,不要觉得使用系统组件没有用处,当你写完20多个系统动画组件的用法的时候,你一定对动画的认知有极大的提升。 -
第三步:在回过头来,认认真真的阅读第1-5篇,相信我,你一定会有不一样的感觉。 -
第四步:动画系列文章中有8篇为自定义动画案例,建议先根据动画效果独自完成,如果没有思路再参考文章。
个人觉得只有通过多写才能理解的更加深刻,纸上得来终觉浅,绝知此事要躬行。
Flutter 动画系列已经全部完成,如果对你有所帮助,请不要吝惜你的赞 和 转发。
本文分享自微信公众号 - 老孟Flutter(lao_meng_qd)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
select * from t where c=5 for update 排它锁
RC隔离级别下, 对非索引字段更新,有个锁全表记录的过程, 不符合条件的会及时释放行锁,不必等事务结束时释放; 而直接用索引列更新,只会锁索引查找值和行。 update产生的X锁在不释放的情况下, DELETE语句无法执行, 但是UPDATE语句能更新不符合之前X锁的记录。 RR隔离级别下,为保证binlog记录顺序, 非索引更新会锁住全表记录, 且事务结束前不会对不符合条件记录有逐步释放的过程。 DELETE和UPDATE语句都不能执行 版本5.7.13 rc模式下: session 1: begin; select * from t where c=5 for update; session 2: delete from t where c=10 --等待 session 3: insert into t values(100001,8) --成功 session 4 : update t set c=100 where id=10 -- 成功 session 1: commit session 2:事务执行成功 rr模式下: begin; select * from t wher...
-
下一篇
Kubernetes微服务自动化发布系统
实施微服务架构后,原先单一的系统结构统变成了数量众多的微服务应用,开发、测试、运维部署等都会面临不少挑战。在微服务架构下如何提高工程研发效率,确保开发、测试、运维部署等流程上的顺畅,是微服务技术体系能够真正落地产生效益的关键。 要实现上述目标就需要基于DevOps(开发运维)思想构建一套高度自动化的发布系统,在该系统中开发人员可以随时随地构建代码并将其发布至指定的运行环境中,这个过程也就是我们通常所说的CI/CD(持续集成/持续交付)流程。 关于DevOps的具体实践,不同的公司一般会根据自身的发展阶段和实际需要来选择具体落地的方案。具备条件的公司可以研发功能丰富的可视化发布系统,而条件有限的创业公司则可以通过开源或现有的技术组件(如GitLab、Jenkins等)来实现操作相对简陋但功能完备的自动化发布系统。 在本篇文章中我将以Spring Cloud微服务技术体系为背景,通过GitLab自带的CI/CD机制并基于Kubernetes容器化技术来实现一套具备相对完整CI/CD流程的自动化发布系统。 CI/CD流程概述 实际上DevOps并不是微服务架构流行之后才产生的概念,而是业界在...
相关文章
文章评论
共有0条评论来说两句吧...


微信收款码
支付宝收款码