Com o Android 8.0 (API de nível 26) e versões mais recentes, é possível instruir
    TextView para permitir que o tamanho do texto
    expandir ou contrair-se automaticamente para preencher o layout com base na
    Características e limites de TextView. Com essa configuração,
    otimize o tamanho do texto em diferentes telas com conteúdo dinâmico.
  
    A Biblioteca de Suporte 26.0 oferece suporte total ao dimensionamento automático de TextView.
    em dispositivos com o Android 8.0 (nível 26 da API) ou versões anteriores.
    O pacote android.support.v4.widget contém o TextViewCompat.
    para acessar recursos de maneira compatível com versões anteriores.
  
Configurar o dimensionamento automático da TextView
    É possível usar o framework ou a Biblioteca de Suporte para configurar o dimensionamento automático de
    TextView programaticamente ou em XML. Para
    definir os atributos XML, você também pode usar a janela Properties
    no Android Studio.
  
    Há três maneiras de configurar o dimensionamento automático de TextView:
    descritas nas seções a seguir:
  
Observação: se você definir o dimensionamento automático em um arquivo XML, não definiremos
    recomendado usar o valor "wrap_content" para o
    atributos layout_width ou layout_height de um
    TextView. Isso pode produzir
    resultados inesperados.
Padrão
    A configuração padrão permite o dimensionamento automático do TextView
    de maneira uniforme nos eixos horizontal e vertical.
  
- Para definir a configuração padrão de forma programática, chame o método
      
      setAutoSizeTextTypeWithDefaults(int autoSizeTextType). InformeAUTO_SIZE_TEXT_TYPE_NONEpara desativar o recurso de dimensionamento automático ouAUTO_SIZE_TEXT_TYPE_UNIFORMpara dimensionar os eixos horizontal e vertical de maneira uniforme.
- Para definir a configuração padrão em XML, use o namespace androide defina oautoSizeTextTypecomo none ou uniforme.
Observação: as dimensões padrão para um dimensionamento
      uniforme são minTextSize = 12sp,
      maxTextSize = 112sp e  granularity = 1px..
    
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" />
Definir a configuração padrão usando a Biblioteca de Suporte
- Para definir a configuração padrão de forma programática por meio da Biblioteca de Suporte,
      chame o método
      
      TextViewCompat.setAutoSizeTextTypeWithDefaults(TextView textview, int autoSizeTextType). Forneça uma instância do widgetTextViewe um dos tipos de texto, comoTextViewCompat.AUTO_SIZE_TEXT_TYPE_NONEouTextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM
- Para definir a configuração padrão em XML pela Biblioteca de Suporte, use o método
      o namespace appe defina oautoSizeTextTypecomo none ou 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>
Granularidade
    Você pode definir um intervalo de tamanhos mínimo e máximo de texto e uma
    dimensão que especifique o tamanho de cada etapa. O
    TextView é dimensionado de maneira uniforme em um intervalo entre os atributos
    de tamanho mínimo e máximo. Cada incremento ocorre como a etapa
    definido no atributo de granularidade.
  
- Para definir um intervalo de tamanhos de texto e uma dimensão de forma programática, chame
      o
      método
      setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit). Informe os valores máximo, mínimo e granularidade e qualquerTypedValueunidade de dimensão.
- Para definir um intervalo de tamanhos de texto e uma dimensão em XML, use o método androidnamespace e configure os seguintes atributos:- Defina o
          autoSizeTextTypecomo none ou uniform. O valor none é o padrão, e uniforme permiteTextViewsão dimensionadas de maneira uniforme na horizontal e eixos verticais.
- Defina o autoSizeMinTextSize,autoSizeMaxTextSize, eautoSizeStepGranularitypara definir as dimensões de dimensionamento automáticoTextView
 
- Defina o
          
<?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" />
Definir granularidade usando a Biblioteca de Suporte
- Para definir um intervalo de tamanhos de texto e uma dimensão de forma programática por meio do
      da Biblioteca de Suporte, chame o método
      
      TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit). Informe os valores máximo, mínimo, de granularidade e qualquer unidade de dimensãoTypedValue.
- Para definir um intervalo de tamanhos de texto e uma dimensão em XML por meio do Suporte
      biblioteca, use o namespace appe defina oautoSizeText,autoSizeMinTextSizeautoSizeMaxTextSizee AtributosautoSizeStepGranularityno arquivo XML de layout.
<?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>
Tamanhos predefinidos
    Os tamanhos predefinidos permitem especificar os valores que o
    O TextView escolhe ao dimensionar o texto automaticamente.
  
- 
    Para usar os tamanhos predefinidos para configurar o dimensionamento automático de
    TextViewde forma programática, chame o métodosetAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit). Forneça uma matriz de tamanhos e qualquer unidade de dimensãoTypedValuepara o tamanho.
- 
    Para usar os tamanhos predefinidos para configurar o dimensionamento automático de
    TextViewno XML, use o namespaceandroide defina os seguintes atributos:- Defina o autoSizeTextTypecomo none ou uniform. O parâmetro none valor é o padrão, e uniforme permiteTextViewsão dimensionadas de maneira uniforme na horizontal e eixos verticais.
- Configure
          o atributo autoSizePresetSizescomo uma matriz de tamanhos predefinidos. Para acessar a matriz como um recurso, defina-a no arquivores/values/arrays.xml.
 
- Defina 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"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" android:autoSizePresetSizes="@array/autosize_text_sizes" />
Definir tamanhos predefinidos usando a Biblioteca de Suporte
- Para usar tamanhos predefinidos para configurar o dimensionamento automático de
    TextViewde maneira programática pela Biblioteca de Suporte, chame o métodoTextViewCompat.setAutoSizeTextTypeUniformWithPresetSizes(TextView textView, int[] presetSizes, int unit). Forneça uma instância da classeTextView, um matriz de tamanhos e qualquer unidade de dimensãoTypedValuepara o tamanho.
- Para usar tamanhos predefinidos para configurar o dimensionamento automático de
    TextViewem XML pela Biblioteca de Suporte, use oappe definaautoSizeTextTypeeautoSizePresetSizesno arquivo XML de layout.
<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>
Outros recursos
  Para mais informações sobre como dimensionar automaticamente um TextView ao trabalhar com recursos dinâmicos
  conteúdo, assistir
  Android Jetpack: dimensionamento automático do TextView (em inglês).
  
