使用Android.Transition框架创建动画(2)

602 查看

前一篇文章中,我们初步了解android.transition框架并开始着手AndroidTransitionExample项目。今天,我们将继续进一步探索如何使用这些类,以及如何从xml文件中加载他们。

为了使用示例工程,我们可以参照前一篇文章中“使用GIT实战”章节。下面是文档给出的一些额外提示。

控制过度效果

让我们来看看如何控制过度效果。首先,我们要进行一下重构。提取goToScene方法,而不是直接调用TransitionManager.go()方法:

转到“extract method goToScene”:

效果是一样的。事实上,如果用AutoTransition效果也一样。但是,这样我们有更多控制,因为这样能把transition集合里的组件绑定到我们的链接上。例如,我们可以改变动画持续的时间:

转到“slow motion transitions”:

因为某些原因,在开发者选项里的动画控制看起来并不能影响动画过度效果。

上面的代码让我们可以慢速查看动画。我们能控制的不仅仅只有过度的时间而已,还可以尝试添加一个内插程序。经典动画的原则之一说到:角色不能简简单单的就开始移动。他们先要展现出要移动的动作,然后移动,最后在停止之前完成动作(Overshoot)。使用内置的AnticipateOvershootInterpolator能得到想要的效果。注意:我们放慢了边缘动画的变动效果,所以很容易看到效果。