以编程方式在 RelativeLayout 中重新居中按钮
Programmatically re - center button in RelativeLayout
我正在制作一个游戏,用户应该在计时器到达一秒之前尝试按下一个按钮,并且每次用户单击该按钮时按钮都会移动到一个随机位置。
开始时按钮居中,但显然会在游戏结束时随机放置。我有一个重启按钮,我想将按钮重新居中以便游戏可以重新开始。
有什么帮助吗?
我会为此使用 View#setTranslationX() and View#setTranslationY() methods or the View#setX() and View#setY() 方法。使用这些 属性 方法比使用 View#setLayoutParams()
框架要容易得多。
View#setTranslationX/Y
会将视图相对于其在屏幕上的当前位置移动一定数量的像素。所以 view.setTranslationX(5)
会将其向右移动五个像素,view.setTranslationX(-5)
会将其向左移动五个像素,view.setTranslationY(5)
会将其向下移动五个像素,而 view.setTranslationY(-5)
会将其移动向上五个像素。 view.setTranslationX(0)
会将其移回其在 x-axis 上的原始位置,而 view.setTranslationY(0)
会将其移回 y-axis.
上
View#setX/Y()
方法会将视图移动到父视图上的设定点,轴心位于视图的左上角。所以 view.setX(0)
会将其移动到父视图的左侧,而 view.setY(0)
会将其移动到父视图的顶部。您可以获取父 View 的宽度和高度,以确定将它们放在 View 的哪个位置。您可以使用 view.getX()
和 view.getY()
来检索它们的原始位置。
我正在制作一个游戏,用户应该在计时器到达一秒之前尝试按下一个按钮,并且每次用户单击该按钮时按钮都会移动到一个随机位置。 开始时按钮居中,但显然会在游戏结束时随机放置。我有一个重启按钮,我想将按钮重新居中以便游戏可以重新开始。
有什么帮助吗?
我会为此使用 View#setTranslationX() and View#setTranslationY() methods or the View#setX() and View#setY() 方法。使用这些 属性 方法比使用 View#setLayoutParams()
框架要容易得多。
View#setTranslationX/Y
会将视图相对于其在屏幕上的当前位置移动一定数量的像素。所以 view.setTranslationX(5)
会将其向右移动五个像素,view.setTranslationX(-5)
会将其向左移动五个像素,view.setTranslationY(5)
会将其向下移动五个像素,而 view.setTranslationY(-5)
会将其移动向上五个像素。 view.setTranslationX(0)
会将其移回其在 x-axis 上的原始位置,而 view.setTranslationY(0)
会将其移回 y-axis.
View#setX/Y()
方法会将视图移动到父视图上的设定点,轴心位于视图的左上角。所以 view.setX(0)
会将其移动到父视图的左侧,而 view.setY(0)
会将其移动到父视图的顶部。您可以获取父 View 的宽度和高度,以确定将它们放在 View 的哪个位置。您可以使用 view.getX()
和 view.getY()
来检索它们的原始位置。