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
上面的答案是不正确的.
文档说明X和Y属性是绝对位置,translationX而且translationY分别被称为LEFT和TOP属性.
所以,之间的差animate().x()和animate().translationX()是一个动画播放至经绝对值,而其他动画为静止绝对值而是由图中确定LEFT和TOP值.
相反,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()
希望澄清...