外观
ObjectAnimator 和 ValueAnimator 的核心区别是什么?何时选择其中一种?
标准回答
ValueAnimator 负责算“现在的数值”;ObjectAnimator 还会把数值写进目标对象的属性。
- 自定义绘制或多个属性的组合更新,适合 ValueAnimator。
- 目标有可操作属性时,ObjectAnimator 可简化属性更新。
- 传统 View 属性动画通常仍由主线程参与调度。
通俗例子
让 View 从透明变为不透明,ObjectAnimator 可更新 alpha;一个数值同时驱动圆半径和颜色时,ValueAnimator 里自己分配更方便。
深入解释
**谁负责中间值:**两者都可按时间和插值规则计算中间值。ValueAnimator 把值交给你的监听器;ObjectAnimator 进一步把值设置到目标属性。
**怎样选择:**只改变一个已有属性,如 alpha,用 ObjectAnimator 直接;同一个进度还要同时算路径位置、圆半径和业务显示,可以在 ValueAnimator 中自己分配。
易混淆点
看到硬件加速就断言动画完全不依赖主线程,是错误的。
参考资料
内容来源
- Android · AI Agent 知识手册 · 原条目
2.5.1