Con Android 8.0 (livello API 26) e versioni successive, puoi indicare una
    TextView per applicare la dimensione del testo
    si espanda o si contragga automaticamente per riempire il layout in base
    Caratteristiche e confini di TextView. Questa impostazione semplifica
    ottimizzare le dimensioni del testo su schermi diversi con contenuti dinamici.
  
    Support Library 26.0 supporta completamente il TextView con ridimensionamento automatico
    su dispositivi con Android 8.0 (livello API 26) o versioni precedenti.
    Il pacchetto android.support.v4.widget contiene TextViewCompat
    per accedere alle caratteristiche in modo compatibile con le versioni precedenti.
  
Imposta la dimensione automatica di TextView
    Puoi utilizzare il framework o la libreria di supporto per configurare il ridimensionamento automatico
    TextView in modo programmatico o in XML. A
    Impostare gli attributi XML, puoi anche usare le Proprietà
    in Android Studio.
  
    Esistono tre modi per configurare il ridimensionamento automatico di TextView:
    descritti nelle sezioni seguenti:
  
Nota: se imposti il ridimensionamento automatico in un file XML,
    si consiglia di utilizzare il valore "wrap_content" per
    Attributi layout_width o layout_height di un
    TextView. Questo potrebbe produrre
    risultati imprevisti.
Predefinito
    L'impostazione predefinita consente il ridimensionamento automatico della scala TextView
    in modo uniforme sugli assi orizzontale e verticale.
  
- Per definire l'impostazione predefinita in modo programmatico, chiama il metodo
      
      setAutoSizeTextTypeWithDefaults(int autoSizeTextType). SpecificaAUTO_SIZE_TEXT_TYPE_NONEper la disattivazione la funzionalità di ridimensionamento automatico oAUTO_SIZE_TEXT_TYPE_UNIFORMper ridimensiona in modo uniforme gli assi orizzontale e verticale.
- Per definire l'impostazione predefinita in XML, utilizza lo spazio dei nomi androide impostaautoSizeTextTypea nessuno oppure uniforme.
Nota: le dimensioni predefinite per l'uniformità
      sono 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" />
Definisci l'impostazione predefinita utilizzando la Libreria di supporto
- Per definire l'impostazione predefinita in modo programmatico
tramite la libreria di supporto,
      chiama il
      
      TextViewCompat.setAutoSizeTextTypeWithDefaults(TextView textview, int autoSizeTextType). Fornisci un'istanza del widgetTextViewe uno dei tipi di testo, comeTextViewCompat.AUTO_SIZE_TEXT_TYPE_NONEoTextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM.
- Per definire l'impostazione predefinita in XML tramite la Libreria di supporto, utilizza
      appe impostaautoSizeTextTypesu nessuno o uniforme.
<?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>
Granularità
    Puoi definire un intervallo di dimensioni minime e massime del testo,
    che specifica la dimensione di ogni passaggio. La
    TextView scala in modo uniforme in un intervallo tra
    gli attributi dimensione minima e massima. Ogni incremento avviene come passo
    dimensioni impostate nell'attributo di granularità.
  
- Per definire in modo programmatico un intervallo di dimensioni di testo e una dimensione, richiama
      il
      setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit). Specifica il valore massimo, il valore minimo e la granularità e qualsiasi valoreTypedValuecome unità di misura.
- Per definire un intervallo di dimensioni del testo e una dimensione in XML, utilizza l'androide imposta lo spazio dei nomi i seguenti attributi:- Imposta il parametro
          autoSizeTextTypesu nessuno o uniforme. Il valore none è l'impostazione predefinita e uniform consenteTextViewin modo uniforme su orizzontali e verticali.
- Imposta autoSizeMinTextSize,autoSizeMaxTextSize, eautoSizeStepGranularityper definire le dimensioni per il dimensionamento automaticoTextView.
 
- Imposta il parametro
          
<?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" />
Definizione della granularità utilizzando la libreria di supporto
- Per definire un intervallo di dimensioni di testo e una dimensione in modo programmatico mediante il
      Support Library, chiama il
      
      TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit). Indica il valore massimo, il valore minimo e il valore di granularità e qualsiasi unità di dimensioneTypedValue.
- Per definire un intervallo di dimensioni del testo e una dimensione in XML tramite
      Libreria, utilizza lo spazio dei nomi appe impostaautoSizeText,autoSizeMinTextSizeautoSizeMaxTextSizeeautoSizeStepGranularitynel file XML di 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>
Dimensioni preimpostate
    Le dimensioni preimpostate ti consentono di specificare i valori
    TextView effettua la selezione per il ridimensionamento automatico del testo.
  
- 
    Per utilizzare le dimensioni preimpostate per configurare il ridimensionamento automatico
    TextViewin modo programmatico, chiamasetAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit). Fornisci un array di dimensioni e qualsiasiTypedValueunità di misura per la dimensione.
- 
    Per utilizzare le dimensioni preimpostate per configurare il ridimensionamento automatico
    TextViewin XML, usaandroide imposta i seguenti attributi:- .
        
- Imposta autoSizeTextTypesu nessuno o uniforme. Quello nessuno è il valore predefinito, mentre uniform consenteTextViewin modo uniforme su orizzontali e verticali.
- Imposta il parametro
          autoSizePresetSizesa un array di dimensioni preimpostate. Per accedere all'array come risorsa, definisci l'array nella classeres/values/arrays.xml.
 
- Imposta 
<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" />
Configurare le dimensioni preimpostate utilizzando la libreria di supporto
- Per utilizzare le dimensioni preimpostate per configurare il ridimensionamento automatico
    TextViewin modo programmatico tramite la libreria di supporto, richiamaTextViewCompat.setAutoSizeTextTypeUniformWithPresetSizes(TextView textView, int[] presetSizes, int unit). Fornisci un'istanza della classeTextView, un array di dimensioni e qualsiasi unità di dimensioneTypedValueper le dimensioni.
- Per utilizzare le dimensioni preimpostate per configurare il ridimensionamento automatico
    TextViewin XML tramite la Libreria di supporto, usa iappe impostaautoSizeTextTypeeautoSizePresetSizesnel file XML di 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>
Risorse aggiuntive
  Per ulteriori informazioni sul dimensionamento automatico di un TextView quando si utilizza una campagna dinamica
  contenuti, guardare
  Android Jetpack: ridimensionamento automatico del TextView.
  
