ViewPropertyAnimators (http://developer.android.com/reference/android/view/ViewPropertyAnimator.html)有两种移动视图的方法:
translateX() vs x(),translateY() vs y(),translateXBy() vs xBy(),最后是translateYBy() vs yBy()。
有人能告诉我这两种方法的区别吗?
发布于 2015-08-19 23:07:27
文档指出X和Y属性是绝对位置,而translationX和translationY分别指左侧和顶部属性。
因此,animate().x()和animate().translationX()之间的区别在于,一个视图将动画设置为绝对值,而另一个将动画设置为仍然是绝对值,但由视图的LEFT和TOP值确定。
相比之下,animate().xBy()和animate().translationXBy()按指定的量增加(代数上)属性值。
这就是上面引用的“一些数学”的由来。
发布于 2018-05-05 23:06:04
发布于 2014-06-23 07:43:49
x是指视图在x轴上的当前视觉位置。因此,例如,当您通过调用view.animate().x(10)来为x设置动画时,视图将被设置为动画,以便它移动到x=10。让我们假设开始动画时视图处于(100,150)的位置。动画结束时,视图将位于(10,150)中。
现在,将其与translationX进行对比。如果通过调用view.animate().translationX(10)来设置此属性的动画,则可以在x轴上按相同数量的像素移动视图。让我们假设同样的例子,当您开始动画时,视图位于(100,150)的位置。动画结束时,视图将位于(110,150)中。
希望这能澄清x()和translationX()之间的区别。y()和translationY()的区别是相同的,但在y轴上。
在我看来,xBy()实现了与translationX()相同的效果,只是使用了x属性本身加上一些数学运算。yBy()和translationY()在y轴上是等效的。
希望这能澄清..。
https://stackoverflow.com/questions/23352789
复制相似问题