2011-01-27 12 views
14

¿Hay alguna manera de que TextView elija un tamaño de fuente que ocupe todo el espacio disponible? Por ejemplo:¿Tiene TextView escalar el tamaño de fuente para llenar el elemento primario?

<LinearLayout 
    layout_width="fill_parent" 
    layout_height="50dip" > 

    <TextView 
    layout_width="fill_parent" 
    layout_height="fill_parent" 
    textSize="scale?" /> 

</LinearLayout> 

Gracias

+0

Hay alguna posibilidad de enviar el código de lo que ha creado? ¡¡Gracias!! –

Respuesta

11

No, no se construye en la escala de fuente en un TextView. Puede sobrecargar el método onDraw() en un hijo de TextView, pero TextView no admite escalar el texto automáticamente.

Tome un vistazo a este otro question.

+0

Ok, sí, solo tuve que escribir algo mío, fastidioso. – user291701

0

Al igual que en la respuesta Nick Campion citado, he usado un bucle y un diseño estático para iterar al tamaño correcto. Mis requisitos eran para ajustarse al ancho y no usar más de una línea (no hay puntos suspensivos):

int i = 0; 
    while(i < 2) { 
     layout = new StaticLayout(text, textPaint, w, Alignment.ALIGN_NORMAL, 1, 0, true); 
     i = layout.getLineCount(); 
     textSize += 2; 
     textPaint.setTextSize(textSize); 
    } 
    textPaint.setTextSize(textSize*0.95f); 
+0

Este método puede hacer que se recorte la parte superior del texto si la vista de texto no es lo suficientemente alta. –

0

Sólo para actualizar, a partir de la API 26 (Android 8.0) TextViews tiene un atributo para el tamaño del texto en los ejes horizontal y vertical

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    android:layout_width="match_parent" 
    android:layout_height="200dp" 
    android:autoSizeTextType="uniform" /> 

Compruébelo en Autosizing TextViews

Cuestiones relacionadas