首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ViewPropertyAnimator的translateYBy()方法和yBy()方法有什么不同?

ViewPropertyAnimator的translateYBy()方法和yBy()方法有什么不同?
EN

Stack Overflow用户
提问于 2014-04-29 07:17:03
回答 3查看 13.9K关注 0票数 36

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

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

有人能告诉我这两种方法的区别吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-19 23:07:27

文档指出XY属性是绝对位置,而translationXtranslationY分别指左侧和顶部属性。

因此,animate().x()animate().translationX()之间的区别在于,一个视图将动画设置为绝对值,而另一个将动画设置为仍然是绝对值,但由视图的LEFTTOP值确定。

相比之下,animate().xBy()animate().translationXBy()按指定的量增加(代数上)属性值。

这就是上面引用的“一些数学”的由来。

票数 45
EN

Stack Overflow用户

发布于 2018-05-05 23:06:04

下面是translationY()y()yBy()translationYBy()方法的可视化

票数 34
EN

Stack Overflow用户

发布于 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轴上是等效的。

希望这能澄清..。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23352789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档