2010-08-19 17 views
12

En mi aplicación, necesito establecer el texto dinámico en mi vista de texto, así que quiero que se redimensione dinámicamente. He establecido:Cómo configurar dinámicamente la altura de la vista de texto android

<TextView 
android:id="@+id/TextView02" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:textStyle="normal" 
android:text="Frontview" 
android:layout_weight="1" 
android:gravity="center_vertical" 
android:textColor="#0099CC" 
android:singleLine="false" 
android:maxLines="4" 
android:ellipsize="marquee" 
/> 

La altura de mi texto no va más allá de 2 líneas y el texto se está cortando. ¿Alguien puede ayudarme?

Gracias por adelantado.

Respuesta

17

Como dijo Konstantin, este código probablemente será ignorado después de exceder de 4 líneas a menos que quite android:maxLines="4"

Así es como se debería ajustar la altura de código:

TextView tv = (TextView) findViewById(R.id.TextView02); 
int height_in_pixels = tv.getLineCount() * tv.getLineHeight(); //approx height text 
tv.setHeight(height_in_pixels); 

Si desea utilizar unidades de inmersión, que permiten que su aplicación se escale en varios tamaños de pantalla, debe multiplicar el recuento de píxeles por el valor devuelto por getResources().getDisplayMetrics().density;

Esto depende de su comportamiento deseado, pero también podría considerar r tiene el tamaño de Vista de Texto fijo, y que permite al usuario desplazar el texto:

TextView tv = (TextView)findViewById(R.id.TextView02); 
tv.setMovementMethod(ScrollingMovementMethod.getInstance()); 
+0

¿Cómo obtener el valor dinámico para height_in_pixels? – neha

+0

He editado mi respuesta para obtener la altura aproximada del texto. Es posible que desee agregar un pequeño búfer para que los caracteres que cuelgan debajo de la línea no se corten ("g", "y", etc.). –

+0

Gracias a Aaron C, pero el texto ha desaparecido después de establecer su altura. La altura se establece en 0 a pesar de que la TV no es nula. – neha

0

Eliminar android: maxLines = "4", restringe la altura de su vista a 4 líneas de texto.

+0

Mi altura TextView no va más allá de 2 líneas y el texto va cortarse. – neha

3
TextView tv; 
---------------------- 
tv=new TextView(this); // you take TextView id (R.id.textview1) 

LinearLayout.LayoutParams Params1 = new LinearLayout.LayoutParams(15,50); 
tv.setLayoutParams(Params1); //you take linearlayout and relativelayout. 
Cuestiones relacionadas