web-dev-qa-db-fra.com

Android Modifier l'alignement du texte

Je fais une petite application pour une tablette, quelque chose comme un panneau d'affichage.

J'ai quelques éléments de texte qui sont alignés au centre dans le panneau d'affichage. Lorsque je tape dessus, il est converti en editText. Je souhaite que le texte modifié soit tel que le texte qu'il contient est aligné au centre et que le contenu soit enveloppé. Mais lorsque j'entre quelque chose, editText se développe dans les deux sens, en gardant le texte aligné au centre. Je veux faire la même chose avec des éléments de texte alignés à droite (la seule différence est que le texte d'édition ne se développerait que vers la gauche).

Lorsque j'essaie de le faire en ce moment, il se développe vers la gauche.C'est mon code pour disposer l'élément d'édition de texte

tempView=new EditText(this);
((EditText) tempView).setTextSize(shrinkedFontSize);
((EditText) tempView).setTypeface(tf);
((EditText) tempView).setText(tempInput.getText());     
((EditText) tempView).setGravity(Gravity.CENTER);
layout.addView(tempView, tempParams);

Je règle la largeur de la mise en page en tant que Wrap_content dans les paramètres de mise en page. J'ai également spécifié les x et y dans mes paramètres de mise en page pour le coin supérieur gauche du texte d'édition.

Y'a-t-il une quelconque façon de réussir cela ?

21
Dhaval Patel

Cela devrait résoudre votre problème:

EditText t = (EditText) findViewById(R.id.text);
t.setGravity(Gravity.CENTER);

... en XML:

<EditText
    Android:id="@+id/text"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:inputType="text" />

Il rend le texte saisi EditText inputField centré horizontalement.

Vous pouvez changer le layout_width De fill_parent À 150 dp ou toute autre taille, mais pas wrap_content. Le texte sera centré horizontalement.

Définissez la t.setGravity(Gravity.RIGHT); ou LEFT, qui rend l'alignement du texte saisi à gauche ou à droite.

39
Asad Rao

Il s'agit d'une solution plus simple testée. Ajoutez simplement Android:gravity="center" au fichier XML de mise en page pour aligner le texte au centre de EditText. Il n'est pas nécessaire de changer Java.

<EditText
    Android:id="@+id/LastName"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:background="@drawable/back"
    Android:inputType="numberDecimal"
    Android:gravity="center" />
15
Ajay B