gpt4 book ai didi

java - Android ObjectAnimator 与 ViewPropertyAnimator

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:03:22 26 4
gpt4 key购买 nike

ObjectAnimator 和 ViewPropertyAnimator 改变属性值有什么区别?

ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(myObject, "X", 0.0f, 100.0f);

我尝试了 myObject.getX(),而上面的 objectAnimator 正在进行中,我得到了一个介于 0.0f 到 100.0 之间的运行中值。

myObject.setX(0.0f);
myObject.animate().x(100.0f);

但是,当我 myObject.getX() 时我得到了精确的 100.0,而上面的 ViewPropertyAnimator 正在进行中。

我不知道是什么造成了这种差异。

提前致谢。

最佳答案

当您请求使用 ViewPropertyAnimatorx 字段设置动画时,它实际上并没有为 x 字段设置动画 - 它为 translateX 字段。这就是为什么您看不到 x 字段更改的原因。

来自 ViewPropertyAnimator.java 中的 Android 源代码:

case X:
renderNode.setTranslationX(value - mView.mLeft);
break;
另一方面,

ObjectAnimator 使用反射来为属性设置动画 - 而不是预设的支持操作列表。因此,当您告诉它为“X”字段设置动画时,它会直接调用“setX”。

关于java - Android ObjectAnimator 与 ViewPropertyAnimator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38205324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com