2012-02-21 27 views
16

Sto realizzando una piccola app per tablet, qualcosa di simile a un display.Android Modifica allineamento testo

Ho alcuni elementi di testo allineati al centro nel segno del display. Quando lo tocco, viene convertito in editText. Voglio il testo di modifica in modo tale che il testo al suo interno sia allineato al centro e il contenuto sia avvolto. Ma quando inserisco qualcosa, editText si espande in entrambe le direzioni, mantenendo il testo allineato al centro. Voglio fare la stessa cosa con gli elementi di testo allineati a destra (l'unica differenza è che il testo di modifica si espanderebbe solo verso sinistra).

quando sto cercando di fare questo adesso si espande verso la left.This è il mio codice per la posa fuori l'elemento di modifica testo

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); 

io pongo la larghezza del layout wrap_content nel layout parametri. Ho anche specificato xey nei miei parametri di layout per l'angolo in alto a sinistra del testo di modifica.

Esiste un modo per raggiungere questo obiettivo?

risposta

35

Questo dovrebbe risolvere il problema:

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

... in XML:

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

rende l'EditText inputField immesso il testo centrato orizzontalmente.

È possibile modificare layout_width da fill_parent a 150 dp o qualsiasi altra dimensione, ma non wrap_content. Il testo sarà centrato orizzontalmente.

Impostare il t.setGravity(Gravity.RIGHT); o LEFT, che rende il testo inserito allineamento sinistro o destro.

10

Questa è una soluzione più semplice testata. È sufficiente aggiungere android:gravity="center" al file XML di layout per allineare il testo al centro di EditText. Non è necessario cambiare il codice 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" />