官方在 Android 8.0(API26)给TextView,新增字体大小随着控件的大小变化的特性。
如果使用 appcompat 兼容库,可以向下支持到Android 4.0(AP14)。
1、自动缩放(当字少时放大,字多时缩小)
<TextView
android:layout_width="500dp"
android:layout_height="100dp"
android:text="TextView自动调整字体大小"
app:autoSizeTextType="uniform"/>
2、缩放范围(设置最大、最小和缩放粒度)
<TextView
android:layout_width="500dp"
android:layout_height="100dp"
android:text="TextView自动调整字体大小"
android:autoSizeMinTextSize="10sp"
android:autoSizeMaxTextSize="80sp"
android:autoSizeStepGranularity="2sp"
app:autoSizeTextType="uniform"/>
3、预设大小清单
(1)添加预设清单(res/values/attrs.xml )
<resources>
<array name="auto_text_size">
<item>10sp</item>
<item>20sp</item>
<item>30sp</item>
<item>40sp</item>
<item>50sp</item>
</array>
</resources>
(2)使用预设清单
<TextView
android:layout_width="500dp"
android:layout_height="100dp"
android:text="TextView自动调整字体大小"
app:autoSizePresetSizes="@array/auto_text_size"
app:autoSizeTextType="uniform"/>