外观
Animation、Animator、Transition,什么时候用哪一个?
标准回答
传统 View Animation 主要改变显示效果;属性动画 Animator 改变指定属性;Transition 描述界面从一个布局状态变到另一个布局状态时,哪些变化需要动画。根据“单个属性变化”还是“整个场景变化”来选。
- beginDelayedTransition 先记录起始状态,再修改布局,让下一次绘制前捕获目标状态。
- 选用 Fade、ChangeBounds 或组合效果,并控制目标范围,避免无关控件一起动。
- 动画期间仍有绘制与布局成本,低性能车机要用实际帧数据验证。
通俗例子
把温度数字淡入可以用 alpha 属性动画;展开空调面板会让多个控件移动和改变大小,可以在修改布局前调用 beginDelayedTransition,让框架比较前后状态并生成过渡。
深入解释
**前后状态指什么:**展开面板前,控件有一组位置和尺寸;改变布局后,又有另一组位置和尺寸。Transition 比较两种状态,并为选择的变化生成过渡。
**调用顺序为什么关键:**先开始记录过渡,再修改布局,系统才能知道从哪里变到哪里。若布局已经改完再记录,就可能失去预期的起始状态。
易混淆点
传统补间动画的视觉位置变化,不一定改变真实布局或点击区域;别只看画面判断。
参考资料
内容来源
- Android · AI Agent 知识手册 · 原条目
job-A04