2012-02-17 27 views
10

que tienen un TextView cuyo texto se puede ejecutar a muchas líneas. Una vez que se ha creado y establecer dinámicamente, me gustaríaAndroid TextView y conseguir línea de texto

  1. Obtener el texto en una línea determinada, y
  2. conocer el ancho y la altura de esta línea.

¿Cómo se hace esto?

Respuesta

20

Si he entendido bien la respuesta a la pregunta 2 es:

textView.getLineBounds (int line, Rect bounds) 

La anchura en píxeles debe ser abs(bounds.right - bounds.left); y la altura es abs(bounds.bottom - bounds.top)

Su primera pregunta es un poco más complejo, pero algo como esto debería hacer la magia requerida:

Layout layout = textView.getLayout(); 
String text = textView.getText().toString(); 
int start=0; 
int end; 
for (int i=0; i<textView.getLineCount(); i++) { 
    end = layout.getLineEnd(i); 
    line[i] = text.substring(start,end); 
    start = end; 
} 
+1

'String texto = textView.getText();' no está trabajando – Deqing

+0

Usted Tendrá que realizar una 'toString()' en él. También me gustaría hacer una comprobación para asegurarse de que 'textView.getText! = Null' para evitar las advertencias del compilador. – LukeWaggoner

+0

Gran sugerencia acerca de cómo obtener el diseño de Vista de Texto y consulta por el tamaño de la línea! Exactamente lo que estaba buscando –