Skip to content
阅读进度

Animation、Animator、Transition,什么时候用哪一个? ​

返回 架构与 SDK 目录

标准回答 ​

传统 View Animation 主要改变显示效果;属性动画 Animator 改变指定属性;Transition 描述界面从一个布局状态变到另一个布局状态时,哪些变化需要动画。根据“单个属性变化”还是“整个场景变化”来选。

  • beginDelayedTransition 先记录起始状态,再修改布局,让下一次绘制前捕获目标状态。
  • 选用 Fade、ChangeBounds 或组合效果,并控制目标范围,避免无关控件一起动。
  • 动画期间仍有绘制与布局成本,低性能车机要用实际帧数据验证。

通俗例子 ​

把温度数字淡入可以用 alpha 属性动画;展开空调面板会让多个控件移动和改变大小,可以在修改布局前调用 beginDelayedTransition,让框架比较前后状态并生成过渡。

深入解释 ​

**前后状态指什么:**展开面板前,控件有一组位置和尺寸;改变布局后,又有另一组位置和尺寸。Transition 比较两种状态,并为选择的变化生成过渡。

**调用顺序为什么关键:**先开始记录过渡,再修改布局,系统才能知道从哪里变到哪里。若布局已经改完再记录,就可能失去预期的起始状态。

易混淆点 ​

传统补间动画的视觉位置变化,不一定改变真实布局或点击区域;别只看画面判断。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。