您的位置:首页 > 移动开发 > Android开发

android根据内容动态更改TextView的字体大小

2016-01-27 19:53 971 查看
最近app开发产品提出了一个需求是,需要动态更改TextView内容字体的大小,比如设定TextView只有一行,宽度只有200dp,内容超过这个之后就缩小字体显示,只能能将字体都显示完全;

自己做的话比较费劲,在晚上找了一圈之后发现了一个比较不错的框架:android-autofittextview

地址:https://github.com/grantland/android-autofittextview

具体的使用方式可以在其github网址上参考;

这里看一下例子展示:

1)当文字字数比较少的时候:



2)当文字字数比较多的时候:



3)当文字字数再多的时候:



可以看出来:当文字没有填充TextView完全时显示的就是默认的字体,当文字能够完全填充TextView并且一行显示不下时,他会默认的缩小文字的字体,当文字再多时,他会默认在末尾省略。。。

原理:

大概看了一下源码,主要是自定义TextView并继承系统的TextView,然后在绘制组件的时候根据getMaxLines方法获取内容的行数

若内容的行数大于1,则缩小文字的字体,然后在尝试获取getMaxLines方法,若内容的行数还是大于1,则据悉缩小文字的字体,直到内容能够一行显示

或者是字体缩小大一定的大小,这时候若缩小到一定的大小还是不能一行显示,则尾部省略。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: