ViewPropertyAnimator的translateYBy()与yBy()方法有什么区别?

Som*_*ent 26 animation android

ViewPropertyAnimators(http://developer.android.com/reference/android/view/ViewPropertyAnimator.html)有两种类型的方法来移动视图:

translateX()vs x(),translateY()vs y(),translateXBy()vs xBy(),最后是translateYBy()vs yBy().

有人能告诉我这些方法之间的区别吗?

Nic*_*ini 38

上面的答案是不正确的.

文档说明XY属性是绝对位置,translationX而且translationY分别被称为LEFT和TOP属性.

所以,之间的差animate().x()animate().translationX()是一个动画播放至经绝对值,而其他动画为静止绝对值而是由图中确定LEFTTOP值.

相反,animate().xBy()并且animate().translationXBy()(以代数方式)将属性值增加指定的量.

这是上面引用的"一些数学"的起源.


小智 6

x指的是视图在 x 轴上的当前视觉位置。因此,例如,当您x通过调用view.animate().x(10)进行动画处理时,视图将进行动画处理以使其移动到x=10。让我们假设开始动画时视图位于 (100, 150) 的位置。动画结束时,视图将位于 (10, 150) 中。

现在,将此与translationX. 如果您通过调用 为该属性设置动画view.animate().translationX(10),则您正在将视图沿 x 轴移动多个像素。让我们假设相同的例子,当你开始动画时,视图位于 (100, 150) 的位置。动画结束时,视图将位于 (110, 150) 中。

希望澄清之间的区别x()translationX()。所不同的是对于相同的y()translationY(),但在y轴。

在我看来,通过使用属性本身加上一些数学xBy()可以达到相同的效果。和是 y 轴上的等价物。translationX()xyBy()translationY()

希望澄清...

  • 这是错误的答案。见 Nicolò Parolini 的回答 (11认同)