Android
Autosizing TextViews
Ricerca…
introduzione
Un TextView che ridimensiona automaticamente il testo per adattarsi perfettamente ai suoi limiti.
Android O ti consente di istruire un TextView affinché le dimensioni del testo si espandano o si contraggano automaticamente per riempire il suo layout in base alle caratteristiche e ai limiti del TextView.
È possibile impostare l'autosizing TextView in entrambi i codici o XML.
Esistono due modi per impostare l'autosizing di TextView: Granularity e dimensioni predefinite
granularità
In Java:
Chiama il metodo setAutoSizeTextTypeUniformWithConfiguration()
:
setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit)
In XML:
Utilizzare gli autoSizeMinTextSize
, autoSizeMaxTextSize
e autoSizeStepGranularity
per impostare le dimensioni di ridimensionamento automatico nel file XML di layout:
<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” />
Guarda la demo di AutosizingTextViews su GitHub per maggiori dettagli.
Dimensioni predefinite
In Java:
Chiama il metodo setAutoSizeTextTypeUniformWithPresetSizes()
:
setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit)
In XML:
Utilizzare l'attributo autoSizePresetSizes
nel file XML di layout:
<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” />
Per accedere alla matrice come risorsa, definire la matrice nel file 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>
Guarda la demo di AutosizingTextViews su GitHub per maggiori dettagli.