AppCompatTextView作用是根据字数自动调整字号大小,防止字数太多时文字被截断或者省略号的出现。而传统的TextView无法自动调整文字大小,超出会截断或者显示省略号。
比如有一个TextView,它的宽度最大是100dp,而它的文字长度不确定,一般是由服务端下发。这个时候产品需求是不管多少都要显示完全,文字多时自动变小,文字少时自动变大,不允许截断或者出现省略号。
这种情况下,TextView就不满足我们的需要,AppCompatTextView就闪亮登场了。
AppCompatTextView的使用示例下面是一个使用示例:
当字数比较少时,显示效果如下:
当字数较多时,显示效果如下:

完整使用步骤如下:
(1)、将TextView替换成AppCompatTextView。
(2)、添加属性:android:maxLines="1" 或者 android:lines="1",设置为单行显示。 注意千万不要用android:singleLine="true",否则缩放无效。
(3)、添加属性:app:autoSizeTextType="uniform" 设置为字号自动缩放。 这个属性只有两个值:uniform和none
(4)、添加属性:app:autoSizeStepGranularity="1sp" 设置最小缩放步长1sp,不指定时默认1px。
(5)、设置最小字号:app:autoSizeMinTextSize="8sp" ,根据实际情况设置。
(6)、设置最大字号:app:autoSizeMaxTextSize="36sp",根据实际情况设置。
完成以上步骤,即可实现字号自动缩放(适应)。
AppCompatTextView的使用注意事项(1)、android:layout_width设置成固定值、wrap_content、match_parent都是可以的。
(2)、AppCompatTextView结合RecyclerView使用也是可以的。
(3)、在RecyclerView的Adapter中动态给AppCompatTextView设置文字时,不要使用SpannableString,否则缩放无效。如果一定要用SpannableString可以转化成String用(调用toString()),不过这样SpannableString的作用就无效了。
注意:1、如果你的 minSdkVersion ≥ 26 那么TextView 已经自带该项支持,只需要添加在 xml 文件中添加android:autoSizeTextType="uniform" 即可!
2、如果你的minSdkVersion 小于 26,那么就需要使用 v7 支持包中的 android.support.v7.widget.AppCompatTextView 来替换原来的 TextView,并且在 xml 文件中添加 app:autoSizeTextType="uniform" 以获得该功能的支持!