FTK中的动画机制

转载时请注明出处和作者联系方式
文章出处:http://www.limodev.cn/blog
作者联系方式:李先静 <xianjimli@gmail.com>

虽然FTK很早就支持了窗口动画,但是作为动画的实现者,我不得不承认FTK的0.6版本之前的动画实现非常蹩脚。主要原因有几点:

1. 动画运动的速度是单一的匀速运动。
2. 动画的帧数不能随着硬件性能而改变。
3. 动画只有窗口的入场(显示)动画,而没有窗口的出场(关闭)动画。
4. 动画机制没有集成到GUI中,必须由使用者创建和调用,使用起来比较麻烦。

前段时间因为工作需要花了不少时间去研究Android的GUI的实现,特意关注了它的动画实现,从中受到不少启发。最近重新实现了FTK的动画机制,很大程度上借鉴了Android的动画原理,当然具体实现上是有很大差异的。这里简单介绍一下FTK的窗口动画实现:

动画运行时间和动画运行进度之前的关系

如果动画匀速运动,那么时间和位置是线性关系的,比如时间过去50%,那么动画会运行到50%的位置上。但是实现中的物体运动,可能是加速运动,减 速运动或皮球一样反弹的,如果所有窗口动画都使用匀速运动,很难达到理想的动画效果。为了解决这个问题,我们引入一个插值器(interpolator) 来实现时间和位置之间的变换。

呵,懒得帖图,请阅读PDF文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值