Ab Android 8.0 (API-Level 26) können Sie einem
    TextView, um die Textgröße zu verwenden
    automatisch maximiert oder minimiert, um das Layout je nach
    Eigenschaften und Grenzen von TextView. Mit dieser Einstellung können Sie
    mit dynamischen Inhalten die Textgröße
auf verschiedenen Bildschirmen optimieren.
  
    Die Support Library 26.0 unterstützt die TextView mit automatischer Größenanpassung
    auf Geräten mit Android-Version 8.0 (API-Level 26) oder niedriger.
    Das Paket android.support.v4.widget enthält das TextViewCompat.
    -Klasse, um auf abwärtskompatible Funktionen zuzugreifen.
  
Automatische Größe von TextView einrichten
    Sie können entweder das Framework oder die Support Library verwenden, um die automatische Größenanpassung von
    TextView programmatisch oder in XML. Bis
    die XML-Attribute festgelegt haben, können Sie auch die Eigenschaften
    in Android Studio.
  
    Es gibt drei Möglichkeiten, die automatische Größenanpassung von TextView einzurichten:
    die in den folgenden Abschnitten beschrieben werden:
  
Hinweis: Wenn Sie in einer XML-Datei die automatische Größenanpassung festlegen,
    empfohlen, der Wert „wrap_content“ zu verwenden für die
    layout_width- oder layout_height-Attribut eines
    TextView Dies könnte zu
    zu unerwarteten Ergebnissen führen.
Standard
    In der Standardeinstellung kann die Größe von TextView automatisch angepasst werden.
    gleichmäßig auf horizontalen und vertikalen Achsen verteilt.
  
- Um die Standardeinstellung programmatisch zu definieren, rufen Sie die Methode
      <ph type="x-smartling-placeholder"></ph>
      setAutoSizeTextTypeWithDefaults(int autoSizeTextType)-Methode. Zum DeaktivierenAUTO_SIZE_TEXT_TYPE_NONEangeben die automatische Größenanpassung oderAUTO_SIZE_TEXT_TYPE_UNIFORM, um die horizontalen und vertikalen Achsen gleichförmig skalieren.
- Verwenden Sie den Namespace android, um die Standardeinstellung in XML zu definieren. und legenautoSizeTextType-Attribut auf none oder Uniform.
Hinweis: Die Standardabmessungen für einheitliche
      Skalierung minTextSize = 12sp,
      maxTextSize = 112sp und granularity = 1px.
    
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" />
Standardeinstellung mithilfe der Support Library definieren
- Um die Standardeinstellung programmatisch über die Support Library zu definieren,
      ruf die
      <ph type="x-smartling-placeholder"></ph>
      TextViewCompat.setAutoSizeTextTypeWithDefaults(TextView textview, int autoSizeTextType). . Geben Sie eine Instanz desTextView-Widgets und einen der Texttypen an. wieTextViewCompat.AUTO_SIZE_TEXT_TYPE_NONEoderTextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM
- Um die Standardeinstellung in XML über die Support Library zu definieren, verwende die Methode
      app-Namespace und legen Sie denautoSizeTextTypefest auf none oder 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>
Leseeinheit
    Sie können einen Bereich von minimalen und maximalen Textgrößen sowie eine
    die die Größe der einzelnen Schritte angibt. Die
    TextView skaliert einheitlich in einem Bereich zwischen den
    für die Mindest- und Maximalgröße. Jedes Inkrement erfolgt als Schritt
    die im Attribut „Detaillierungsgrad“ festgelegt ist.
  
- Um einen Textgrößenbereich und eine Dimension programmatisch zu definieren, rufen Sie
      die
      setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit). Geben Sie den Höchst- und Mindestwert sowie den Detaillierungsgrad an. Wert und alleTypedValueDimensionseinheit.
- Um einen Textgrößenbereich und eine Dimension in XML zu definieren, verwende die android. Namespace und Set folgende Attribute: <ph type="x-smartling-placeholder">- </ph>
        
- Legen Sie die
          autoSizeTextTypeentweder auf none oder uniform. Der Wert none ist die Standardeinstellung. Mit uniformTextViewskaliert gleichmäßig horizontal und vertikalen Achsen.
- Legen Sie autoSizeMinTextSizefest,autoSizeMaxTextSize, undautoSizeStepGranularityzum Definieren der Dimensionen für die automatische Größenanpassung vonTextView
 
- Legen Sie die
          
<?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" />
Detaillierungsgrad mithilfe der Support Library definieren
- Um einen Bereich von Textgrößen und eine Dimension programmatisch über die
      Support Library, unter der
      <ph type="x-smartling-placeholder"></ph>
      TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit). . Geben Sie den Maximalwert, den Minimalwert, den Detaillierungsgrad und eine beliebigeTypedValue-Dimensionseinheit.
- Um einen Bereich von Textgrößen und eine Dimension in XML über die
      Bibliothek, verwenden Sie den Namespace appund legen Sie denautoSizeText,autoSizeMinTextSize,autoSizeMaxTextSizeundautoSizeStepGranularity-Attribute in der Layout-XML-Datei angeben.
<?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>
Voreingestellte Größen
    Mit vordefinierten Größen können Sie die Werte angeben,
    Auswahlmöglichkeiten für die automatische Textgröße von TextView.
  
- 
    Wenn Sie voreingestellte Größen verwenden möchten,
    TextViewprogrammatisch aufrufen,setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit). Geben Sie ein Array mit Größen und alleTypedValuean Dimensionseinheit für die Größe.
- 
    Wenn Sie voreingestellte Größen verwenden möchten,
    TextViewin XML,androidverwenden Namespace und legen Sie die folgenden Attribute fest: <ph type="x-smartling-placeholder">- </ph>
        
- autoSizeTextTypefestlegen entweder auf none oder uniform. Der Parameter none ist der Standardwert und mit uniform- TextViewskaliert gleichmäßig horizontal und vertikalen Achsen.
- Legen Sie die
          autoSizePresetSizeseinem Array voreingestellter Größen hinzu. Um auf das Array als Ressource, definiere das Array inres/values/arrays.xml. -Datei.
 
<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" />
Voreingestellte Größen in der Supportbibliothek einrichten
- Wenn Sie voreingestellte Größen verwenden möchten,
    TextViewprogrammatisch Support-Bibliothek erhalten haben, rufen Sie die <ph type="x-smartling-placeholder"></ph>TextViewCompat.setAutoSizeTextTypeUniformWithPresetSizes(TextView textView, int[] presetSizes, int unit). Geben Sie eine Instanz der KlasseTextViewan, eine und eine beliebigeTypedValue-Dimensionseinheit für die Größe ändern.
- Wenn Sie voreingestellte Größen verwenden möchten,
    TextViewin XML über die Support Library, verwenden Sie dieapp-Namespace und legen SieautoSizeTextTypeundautoSizePresetSizes-Attribute in der Layout-XML-Datei angeben.
<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>
Weitere Informationen
  Weitere Informationen zur automatischen Größenanpassung eines TextView bei der Arbeit mit dynamischen
  Inhalt, ansehen
  Android Jetpack: Automatische Skalierung von TextView
  
