gpt4 book ai didi

java - 使用按钮移动 Textview Android

转载 作者:行者123 更新时间:2023-11-29 04:24:59 25 4
gpt4 key购买 nike

我想要做的是,当您单击图像中显示的任何箭头按钮时,TextView user_text 将在相应的方向上移动少量。出于某种原因,当我单击按钮时使用下面的 Java 代码,文本会一直移动到屏幕的绝对边缘。我不确定为什么会这样,所以我决定尝试使用 user_text.getX() 和 user_text.getY() 来获取它们的 X 和 Y 坐标,但这并没有做任何事情。经过一番研究,我发现我应该一直使用 user_text.getLeft() 和 user_text.getTop() 和/或 user_text.getWidth()。在尝试这些之后,工作室的 android 监视器/调试部分说这些数字是 0。我不确定为什么会这样,但如果有人能告诉我我应该做什么或者如何得到它,这样每次你单击它移动的按钮,将不胜感激。

谢谢

附言我在图片上写了字,这样你就会知道什么被识别为 user_text

reference image

我的相关 XML 代码:

<TextView
android:id="@+id/user_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textColor="@android:color/black"
android:textSize="18sp"
android:elevation="20dp"
android:paddingBottom="120dp" />
. <--- that is supposed to represent that there's other non-relevant code in between
.
.

<RelativeLayout
android:id="@+id/move_Group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="5dp"
android:layout_centerInParent="true"
android:visibility="visible"
android:gravity="center">

<Button
android:id="@+id/move_left"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:background="@mipmap/arrow"
android:rotation="-90"
android:layout_marginRight="20dp"
android:onClick="moveLeft"/>

<Button
android:id="@+id/move_up"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/move_left"
android:background="@mipmap/arrow"
android:layout_marginRight="20dp"
android:onClick="moveUp"/>

<Button
android:id="@+id/move_down"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/move_up"
android:background="@mipmap/arrow"
android:rotation="180"
android:layout_marginRight="20dp"
android:onClick="moveDown"/>

<Button
android:id="@+id/move_right"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/move_down"
android:background="@mipmap/arrow"
android:rotation="90"
android:layout_marginRight="20dp"
android:onClick="moveRight"/>

<TextView
android:id="@+id/move"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MOVE"
android:textSize="20sp"
android:layout_toRightOf="@id/move_right"
android:textColor="@android:color/black"/>

</RelativeLayout>

我的相关 Java 代码:

TextView user_text = (TextView) findViewById(R.id.user_text);
.
.
.
public void moveLeft(View view)
{
user_text.setX(userX + 10);
}

public void moveUp(View view)
{
user_text.setY(userY + 10);
}

public void moveDown(View view)
{
user_text.setY(userY - 10);
}

public void moveRight(View view)
{
user_text.setX(userX - 10);
}

最佳答案

在点击函数中获取当前 user_text 的 X 和 Y。

public void moveLeft(View view)
{
user_text.setX(user_text.getX() - 10);
}

向上移动时:Y = Y - delta。

public void moveUp(View view)
{
user_text.setY(user_text.getY() - 10);
}

向下移动时:Y = Y + delta

public void moveDown(View view)
{
user_text.setY(user_text.getY() + 10);
}

这是 MainActivity.java 中的示例。我看到它有效

public class MainActivity extends AppCompatActivity {

TextView user_text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

user_text = (TextView) findViewById(R.id.user_text);

}

public void moveLeft(View view)
{
user_text.setX(user_text.getX() - 10);
}

public void moveUp(View view)
{
user_text.setY(user_text.getY() - 10);

}

public void moveDown(View view)
{
user_text.setY(user_text.getY() + 10);

}

public void moveRight(View view)
{
user_text.setX(user_text.getX() + 10);
}
}

关于java - 使用按钮移动 Textview Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46859105/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com