Android
Autosize TextViews
Buscar..
Introducción
Un TextView que automáticamente cambia el tamaño del texto para que se ajuste perfectamente a sus límites.
Android O le permite indicar a TextView que permita que el tamaño del texto se expanda o se contraiga automáticamente para completar su diseño según las características y los límites de TextView.
Puede configurar el tamaño automático de TextView en código o XML.
Hay dos formas de configurar TextView de tamaño automático: granularidad y tamaños preestablecidos
Granularidad
En Java:
Llame al método setAutoSizeTextTypeUniformWithConfiguration()
:
setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit)
En XML:
Utilice los atributos autoSizeMinTextSize
, autoSizeMaxTextSize
y autoSizeStepGranularity
para establecer las dimensiones de tamaño automático en el archivo XML de diseño:
<TextView android:id=”@+id/autosizing_textview_presetsize”
android:layout_width=”wrap_content”
android:layout_height=”250dp”
android:layout_marginLeft=”0dp”
android:layout_marginTop=”0dp”
android:autoSizeMaxTextSize=”100sp”
android:autoSizeMinTextSize=”12sp”
android:autoSizeStepGranularity=”2sp”
android:autoSizeText=”uniform”
android:text=”Hello World!”
android:textSize=”100sp”
app:layout_constraintLeft_toLeftOf=”parent”
app:layout_constraintTop_toTopOf=”parent” />
Vea la demostración de AutosizingTextViews en GitHub para más detalles.
Tamaños preestablecidos
En Java:
Llame al método setAutoSizeTextTypeUniformWithPresetSizes()
:
setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit)
En XML:
Use el atributo autoSizePresetSizes
en el archivo XML de diseño:
<TextView android:id=”@+id/autosizing_textview_presetsize”
android:layout_width=”wrap_content”
android:layout_height=”250dp”
android:layout_marginLeft=”0dp”
android:layout_marginTop=”0dp”
android:autoSizeText=”uniform”
android:autoSizePresetSizes=”@array/autosize_text_sizes”
android:text=”Hello World!”
android:textSize=”100sp”
app:layout_constraintLeft_toLeftOf=”parent”
app:layout_constraintTop_toTopOf=”parent” />
Para acceder a la matriz como un recurso, defina la matriz en el archivo res / values / arrays.xml :
<array name=”autosize_text_sizes”>
<item>10sp</item>
<item>12sp</item>
<item>20sp</item>
<item>40sp</item>
<item>100sp</item>
</array>
Vea la demostración de AutosizingTextViews en GitHub para más detalles.