外观
View 动画 属性动画和窗口动画有什么区别?
标准回答
传统 View Animation 主要改变绘制时的视觉变换,通常不改变 View 的布局位置;属性动画直接更新对象属性,例如 translationX、alpha 或 width,是否触发布局取决于属性实现。窗口动画处理的是整个 Window 或 Task 的系统转场,常围绕 SurfaceControl 对图层或 animation leash 做位置、缩放、透明度与裁剪变化,能覆盖跨进程应用窗口。给页面根 View 做动画可以实现页面内部效果,但控制其他应用的任务转场需要相应系统机制和权限。
延伸追问
属性动画改变 translationX 并不等同于改变 LayoutParams;修改 width 这类布局属性可能带来每帧重新布局。
内容来源
- Android Framework 知识手册 · 原条目
2-12