2012-02-21 18 views
16

Estoy haciendo una pequeña aplicación para una tableta, algo así como un signo de pantalla.Android Editar alineación de texto

Tengo algunos elementos de texto que están alineados en el centro en el letrero de la pantalla. Cuando toco sobre él, se convierte a editText. Quiero el texto de edición de tal manera que el texto en él esté alineado al centro y contenido envuelto. Pero cuando ingreso algo, editText se expande en ambos sentidos, manteniendo el texto alineado al centro. Quiero hacer lo mismo con los elementos de texto alineados a la derecha (la única diferencia es que el texto de edición se expandiría solo hacia la izquierda).

Cuando estoy tratando de hacer esto ahora se expande hacia el left.This es mi código para trazar el elemento de edición de texto

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

estoy fijando la anchura de la distribución como en la disposición Wrap_content parámetros. También he especificado la xey en mis parámetros de diseño para la esquina superior izquierda del texto de edición.

¿Hay alguna manera de lograr esto?

Respuesta

35

Esto debería resolver su problema:

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" /> 

Esto hace que la EditarTexto InputField introduce el texto centrado horizontalmente.

Puede cambiar el layout_width de fill_parent a 150 dp o cualquier otro tamaño, pero no wrap_content. El texto se centrará horizontalmente.

Establezca t.setGravity(Gravity.RIGHT); o LEFT, que hace que el texto ingresado se alinee a la izquierda o a la derecha.

10

Esta es una solución probada más simple. Simplemente agregue android:gravity="center" al archivo XML de diseño para alinear el texto al centro de EditText. No hay necesidad de cambiar el código de 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" /> 
Cuestiones relacionadas