Con Android 8.0 (nivel de API 26) y versiones posteriores, puedes indicarle a un
    TextView para permitir el tamaño del texto
    expandir o contraer automáticamente
para completar el diseño según el
    Características y límites de TextView Este parámetro de configuración hace que sea más fácil
    optimizar el tamaño del texto en diferentes pantallas con contenido dinámico.
  
    La biblioteca de compatibilidad 26.0 es totalmente compatible con el ajuste automático de tamaño de TextView.
    en dispositivos con Android 8.0 (nivel de API 26) o versiones anteriores.
    El paquete android.support.v4.widget contiene TextViewCompat.
    para acceder a funciones de manera retrocompatible.
  
Cómo configurar el tamaño automático de TextView
    Puedes usar el framework o la biblioteca de compatibilidad para configurar el ajuste automático de tamaño de
    TextView de manera programática o en XML. Para configurar los atributos XML, también puedes usar la ventana Properties en Android Studio.
  
    Existen tres formas de configurar el ajuste automático de tamaño de TextView:
    que se describen en las siguientes secciones:
  
Nota: Si configuras el ajuste automático de tamaño en un archivo en formato XML, no
    se recomienda usar el valor "wrap_content" para el
    Los atributos layout_width o layout_height de un
    TextView Hacerlo puede producir
    resultados inesperados.
Predeterminado
    La configuración predeterminada permite que el ajuste automático de tamaño de la escala TextView
    uniformemente en los ejes horizontales y verticales.
  
- Para definir la configuración predeterminada de forma programática, llama al
      
      setAutoSizeTextTypeWithDefaults(int autoSizeTextType). ProporcionaAUTO_SIZE_TEXT_TYPE_NONEpara desactivar la función de ajuste automático de tamaño oAUTO_SIZE_TEXT_TYPE_UNIFORMpara escalar los ejes horizontal y vertical de manera uniforme.
- Para definir la configuración predeterminada en XML, usa el espacio de nombres android. y configura el el atributoautoSizeTextTypea none o uniforme.
Nota: Las dimensiones predeterminadas para el escalamiento uniforme son minTextSize = 12sp, maxTextSize = 112sp y granularity = 1px..
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" />
Cómo definir la configuración predeterminada con la biblioteca de compatibilidad
- Para definir la configuración predeterminada de forma programática a través de la biblioteca de compatibilidad, haz lo siguiente:
      Llamar a
      
      TextViewCompat.setAutoSizeTextTypeWithDefaults(TextView textview, int autoSizeTextType). Proporciona una instancia del widgetTextViewy uno de los tipos de texto. comoTextViewCompat.AUTO_SIZE_TEXT_TYPE_NONEoTextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM
- Para definir la configuración predeterminada en XML a través de la biblioteca de compatibilidad, usa el elemento
      Espacio de nombres appy configura elautoSizeTextTypeatributo a none o uniform.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" /> </LinearLayout>
Nivel de detalle
    Puedes definir un rango de tamaños de texto mínimo y máximo, y una dimensión que especifique el tamaño de cada paso. TextView escala de manera uniforme en un rango entre los atributos de tamaño mínimo y máximo. Cada incremento ocurre como el paso
    establecido en el atributo de nivel de detalle.
  
- Para definir un rango de tamaños de texto y una dimensión de forma programática, llama al método setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit). Proporciona el valor máximo, el valor mínimo y el nivel de detalle y cualquierTypedValueunidad de dimensión.
- Para definir un rango de tamaños de texto y una dimensión en XML, usa android. y configura los siguientes atributos:- Establece el
          autoSizeTextTypeatributo a none o uniform. El valor none es el valor predeterminado, y uniforme permiteTextViewescalan de manera uniforme en horizontal y los ejes verticales.
- Establece el autoSizeMinTextSize.autoSizeMaxTextSize, yautoSizeStepGranularitypara definir las dimensiones del ajuste automático de tamañoTextView
 
- Establece el
          
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" android:autoSizeMinTextSize="12sp" android:autoSizeMaxTextSize="100sp" android:autoSizeStepGranularity="2sp" />
Cómo definir el nivel de detalle con la biblioteca de compatibilidad
- Para definir un rango de tamaños de texto y una dimensión de forma programática a través de la
      Support Library llama al
      
      TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit). Proporciona el valor máximo, el valor mínimo, el valor de detalle y cualquier unidad de dimensiónTypedValue.
- Para definir un rango de tamaños de texto y una dimensión en XML a través de la página de asistencia
      biblioteca, usa el espacio de nombres appy configura laautoSizeText,autoSizeMinTextSizeautoSizeMaxTextSizey AtributosautoSizeStepGranularityen el archivo en formato XML de diseño
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" app:autoSizeMinTextSize="12sp" app:autoSizeMaxTextSize="100sp" app:autoSizeStepGranularity="2sp" /> </LinearLayout>
Tamaños predeterminados
    Los tamaños predeterminados te permiten especificar los valores
    TextView elige cuando se ajusta automáticamente el tamaño del texto.
  
- 
    Llama al método setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit)para usar los tamaños predeterminados con el objetivo de configurar el ajuste automático de tamaño deTextViewde forma programática. Proporciona un arreglo de tamaños y cualquier unidad de dimensiónTypedValuepara el tamaño.
- 
        Para usar tamaños predeterminados a fin de configurar el ajuste automático de tamaño de TextViewen XML, usa el espacio de nombresandroidy configura los siguientes atributos:- Establece el autoSizeTextType. atributo a none o uniform. El valor none es el valor predeterminado, y uniform permiteTextViewescalan de manera uniforme en horizontal y los ejes verticales.
- Configura el atributo autoSizePresetSizesen un arreglo de tamaños predeterminados. Para acceder al arreglo como un recurso, defínelo en el archivores/values/arrays.xml.
 
- Establece el 
<resources> <array name="autosize_text_sizes"> <item>10sp</item> <item>12sp</item> <item>20sp</item> <item>40sp</item> <item>100sp</item> </array> </resources>
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" android:autoSizePresetSizes="@array/autosize_text_sizes" />
Cómo configurar tamaños predeterminados con la biblioteca de compatibilidad
- Para usar tamaños predeterminados y configurar el ajuste automático de tamaño
    TextViewde manera programática a través de la biblioteca de compatibilidad, llama alTextViewCompat.setAutoSizeTextTypeUniformWithPresetSizes(TextView textView, int[] presetSizes, int unit). Proporciona una instancia de la claseTextView, un array de tamaños y cualquier unidad de dimensiónTypedValuepara el tamaño.
- Para usar tamaños predeterminados y configurar el ajuste automático de tamaño
    TextViewen XML a través de la biblioteca de compatibilidad, usa el elementoappy configura los elementosautoSizeTextTypeyautoSizePresetSizesdel archivo en formato XML de diseño.
<resources> <array name="autosize_text_sizes"> <item>10sp</item> <item>12sp</item> <item>20sp</item> <item>40sp</item> <item>100sp</item> </array> </resources>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" app:autoSizePresetSizes="@array/autosize_text_sizes" /> </LinearLayout>
Recursos adicionales
  Para obtener información adicional sobre el ajuste automático del tamaño de un TextView cuando se trabaja con
  contenido, mirar
  Android Jetpack: Cómo ajustar automáticamente el tamaño de TextView.
  
