【问题标题】:Interpolator vs Animations vs Transitions插值器 vs 动画 vs 过渡
【发布时间】:2018-05-13 05:36:48
【问题描述】:
我正在研究很多关于 android 动画和材料设计的知识,现在我对每种“动画类型”的概念有点困惑。
来自 Android 开发者网站:
Animations
动画可以添加微妙的视觉提示,通知用户您的应用中正在发生的事情,并改善他们对应用界面的心理模型。动画在屏幕改变状态时特别有用,例如当内容加载或新操作可用时。动画还可以为您的应用添加精美的外观,从而为您的应用带来更高品质的感觉。
Interface Interpolator
插值器定义动画的变化率。这允许加速、减速、重复等基本动画效果(alpha、缩放、平移、旋转)。
Transitions Framework
为应用的用户界面制作动画不仅提供视觉吸引力。动画突出显示变化并提供视觉提示,帮助用户了解您的应用是如何工作的。
那么问题来了,它们之间的实际区别是什么?我应该使用哪一个?
【问题讨论】:
标签:
android
animation
android-transitions
【解决方案1】:
我尽力解释这个我绝对不是专家。
让我们从插值器开始。它们是所有 Android 动画都需要的工具。它们是计时实用程序,可让您根据插值器的时间自定义您正在制作动画的任何内容。例如,具有恒定变化率的 LinearInterpolator 意味着您正在制作动画的任何内容都将始终具有恒定变化。因此,如果您要以 60fps 的速度对 100 像素水平的图像进行动画处理,超过 1 秒。图像将每 16 毫秒移动大约 6~ 个像素。但是使用 AccelerateInterpolator 时,变化率会根据您应用于插值器构造函数的一些缓动因素定期增加。使用前面的示例,它不会每 16 毫秒持续移动 6~ 个像素,而是图像移动的像素数量会略微增加,直到动画完成。这是材料文档的link,其中包含一些非常有用的视频,这些视频演示了插值器如何影响动画。我建议通读整个页面,也许下一个可以更好地掌握。
接下来,过渡是一种特定类型的动画。过渡将在状态变化之间进行动画处理;例如活动、UI 元素或文本。例如,如果您在应用程序中的活动之间切换,框架会提供一个默认动画来转换两个活动。这种过渡通常是滑入和滑出翻译。另一个过渡动画示例是,当您点击图像并且应用程序转换到包含相同点击图像的另一个屏幕时。想想在 Play Music 中单击专辑封面。这是一个来自材料设计文档的良好过渡动画的link(查看第一个视频)。