TextView 字体大小自适应

描述

在进行android 开发过程中,会遇到TextView 中文本显示不全的情况,这个时候想根据文本的长度自动改变字体大小,首先想到的时候自定义View ,但是呢在Android O 中已经提供了实现方式,并且拥有兼容库,最低支持到API 14,这瞬间就爽到我了,不多BB 了,直接看实现。

重点注意:

如果代码中设置了以下的代码,不生效。

android:singleLine="true"

必须设置的属性是:

android:maxLines="1"

效果图

没有效果图,如果你用过今日头条添加频道的话,这里就不会骂我了。

通过代码方式

在代码中调用函数 setAutoSizeTextTypeWithDefaults(@AutoSizeTextType int autoSizeTextType) 并指定参数为 AUTO_SIZE_TEXT_TYPE_UNIFORM来设置默认值。如果你不想启用自动调整字体大小的功能,则可以设置参数为 AUTO_SIZE_TEXT_TYPE_NONE.

textView.setAutoSizeTextTypeWithDefaults(TextView.AUTO_SIZE_TEXT_TYPE_UNIFORM);

或者设置粒度(设置最大只和最小值,并且指定每次调整的增量值):


//autoSizeMinTextSize 最小值;autoSizeMaxTextSize:最大值;autoSizeStepGranularity:增量;unit:类型,此处指定的是sp
textView.setAutoSizeTextTypeUniformWithConfiguration(10,17,1,TypedValue.COMPLEX_UNIT_SP);

通过xml 方式(推荐的方式)

<TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_gravity="center"
        app:autoSizeTextType="uniform"
        app:autoSizeMinTextSize="3sp"
        app:autoSizeMaxTextSize="15sp"
        app:autoSizeStepGranularity="1sp"
        android:maxLines="1"/>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 遇见问题:当一个控件显示的文字有点长的时候,可能在屏幕小的设备上就会变得显示不完整,特别是那种不允许文字省略的按钮...
    我说的这句话是谎话阅读 21,034评论 0 13
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 7,358评论 0 17
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,168评论 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,827评论 1 45
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 4,955评论 0 0

友情链接更多精彩内容