Android O自动缩放TextView

作者: 客家小罗 | 来源:发表于2017-05-08 19:35 被阅读457次

    Android O允许你通知TextView基于字符内容和布局边界,自动缩放文本的尺寸。这个功能设置使得我们很容易在不同大小的屏幕上优化动态文本的显示尺寸。

    设置TextView自动缩放

    你可以通过代码或者布局xml中设置自动缩放属性。同时可以使用以下两种方式来进行设置:

    • 间隔尺寸
    • 预设尺寸

    间隔尺寸

    使用间隔尺寸功能,你可以指定最小和最大的字号,以及缩放时的步长。TextView将在最小和最大字号之间统一缩放文本内容。每次增加的字号步长将采用间隔尺寸属性的值。
    通过间隔尺寸设置TextView的自动缩放,你可以采用如下两种方式:

    • 调用setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit),最大、最小、间隔步长的单位可以为TypeValued定义的任意一种。
    • 在xml布局文件中设置TextView的autoSizeText属性启用自动缩放。这个属性的值只能为none或者uniform,默认值是none。取none时表示不启用自动缩放。取uniform时在水平和垂直方向统一缩放。使用autoSizeMinText、autoSizeMaxTextSize和autoSizeStepGranularity属性在xml布局中设置自动缩放的尺寸。
    <TextView 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:autoSizeText="uniform"
      android:autoSizeMinTextSize="12sp"
      android:autoSizeMaxTextSize="100sp"
      android:autoSizeStepGranularity="2sp"/>```
    你也可以在Android Studio的属性窗口中对这些属性进行设置。
    
    ## 预设尺寸
    使用预设尺寸,TextView将从提前定义好的尺寸列表中执行自动缩放。
    使用以下两种方式来设置预设尺寸:
    - 调用setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit),提供一个尺寸大小数组,数组值的单位可以为TypeValued定义的任意一种。
    - 在xml布局文件中设置autoSizePresetSizes属性,值为在res/values/arrays.xml中定义的数组资源。
    

    <resources>
    <array
    name="autosize_text_sizes">
    <item>10sp</item>
    <item>12sp</item>
    <item>20sp</item>
    <item>40sp</item>
    <item>100sp</item>
    </array>
    </resources>

    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autoSizeText="uniform"
    android:autoSizePresetSizes="@array/autosize_text_sizes"
    />

    你也可以在Android Studio的属性窗口中对这些属性进行设置。

    相关文章

      网友评论

      • 小林0504:没有啊,我这个只到7.1.1的没有安卓O的sdk啊
        客家小罗:@小林0504 https://developer.android.com/studio/preview/index.html?hl=zh-cn,下载这个预览版试试
      • 小林0504:请问在哪儿可以下载8.0的sdk,求大神指教。
        客家小罗:@小林0504 AndroidStudio就可以啊

      本文标题:Android O自动缩放TextView

      本文链接:https://www.haomeiwen.com/subject/hdlmottx.html