今年Google将发布新的Android版本,代码为O,好奇又会用什么好吃的来给这个版本命名。现在,Google已经给出了Android O预览,介绍了新增的功能和开发兼容注意事项。今天,就让我们来看看其中一个 —— 自动调整文本大小的TextView —— 是怎么一回事。
简介
Autosizing TextViews,自动调整文本大小的TextView,意思就是说,当TextView的布局边界尺寸发生变化时,文本大小可以跟着自动缩放调整。文本调整到的值,是TextView能保证文本全部显示的最大值,而这个“最大”值达到设置的范围的最大、最小极值时,将不会随时TextView尺寸变化而进一步的变大或变小。
文本的自动缩放支持两种模式
- 粒度型(Granularity)
- 预置大小型(Preset sizes)
粒度型
此模式下,通过设置最小值和最大值来确定一个文本大小变化范围,然后设置一个变化粒度值,TextView就能够以该粒度值为增减变量,在变化范围内动态缩放文本大小。此模式下的文本大小变化,是在粒度控制下的均匀变化。
(1) 代码控制
可调用方法setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit)设置文本自动缩放。其中,前三个参数分别指最小文本尺寸、最大文本尺寸和变化粒度值;第四个参数用来设置前三个参数的单位,由TypedValue类型指定
(2) XML控制
可控制的相关属性包括:
autoSizeText:取值none(默认,表示不自动缩放)、uniform(横、纵缩放)
autoSizeMinTextSize
:最小尺寸
autoSizeMaxTextSize
:最大尺寸