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()d的时候,我得到了精确的100.0,而高于ViewPropertyAnimator的是持续的。
我不知道是什么让这件事变得不同。
提前谢谢。
发布于 2016-07-05 14:14:44
当您请求使用一个x字段动画ViewPropertyAnimator字段时,它实际上并不会动画x字段--它会将translateX字段动画化。这就是为什么您看不到x字段更改的原因。
来自ViewPropertyAnimator.java中的Android源代码
case X:
renderNode.setTranslationX(value - mView.mLeft);
break;另一方面,ObjectAnimator使用反射来动画属性,而不是预先设置支持的操作列表。所以当你告诉它给"X“字段动画时,它直接调用"setX”。
https://stackoverflow.com/questions/38205324
复制相似问题