Ce que j'essaie de faire est lorsque vous cliquez sur l'un des boutons fléchés affichés dans l'image, le texte utilisateur TextView se déplace un peu dans la direction respective. Pour une raison quelconque, en utilisant le code Java ci-dessous lorsque je clique sur les boutons, le texte se déplace tout le chemin jusqu'au bord absolu de l'écran. Je n'étais pas sûr de ce qui se passait, alors j'ai décidé d'essayer d'utiliser user_text.getX() and user_text.getY()
pour obtenir leurs coordonnées X et Y, mais cela n'a rien fait. Après un peu de recherche, j'ai trouvé que j'aurais dû utiliser user_text.getLeft() and user_text.getTop() and/or user_text.getWidth()
. Après avoir essayé ceux-ci, la section android monitor/debug du studio a dit que ces chiffres étaient 0. Je ne sais pas pourquoi c'est arrivé, mais si quelqu'un pouvait me dire ce que je devais faire à la place ou comment l'obtenir à chaque fois que vous cliquez sur le bouton qu'il déplace, ce serait grandement apprécié.Déplacement de la vue de texte à l'aide des boutons Android
Merci
P.S. Je l'ai écrit sur l'image si vous voulez savoir ce qui est ID-ed comme user_text
Mon code XML correspondant:
<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>
Mon code Java correspondant:
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);
}
S'il vous plaît laissez quelques explications – tan