android根据内容动态更改TextView的字体大小
2016-01-27 19:53
971 查看
最近app开发产品提出了一个需求是,需要动态更改TextView内容字体的大小,比如设定TextView只有一行,宽度只有200dp,内容超过这个之后就缩小字体显示,只能能将字体都显示完全;
自己做的话比较费劲,在晚上找了一圈之后发现了一个比较不错的框架:android-autofittextview
地址:https://github.com/grantland/android-autofittextview
具体的使用方式可以在其github网址上参考;
这里看一下例子展示:
1)当文字字数比较少的时候:
![](http://img.blog.csdn.net/20160127194250010?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2)当文字字数比较多的时候:
![](http://img.blog.csdn.net/20160127194328758?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3)当文字字数再多的时候:
![](http://img.blog.csdn.net/20160127195233214?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
可以看出来:当文字没有填充TextView完全时显示的就是默认的字体,当文字能够完全填充TextView并且一行显示不下时,他会默认的缩小文字的字体,当文字再多时,他会默认在末尾省略。。。
原理:
大概看了一下源码,主要是自定义TextView并继承系统的TextView,然后在绘制组件的时候根据getMaxLines方法获取内容的行数
若内容的行数大于1,则缩小文字的字体,然后在尝试获取getMaxLines方法,若内容的行数还是大于1,则据悉缩小文字的字体,直到内容能够一行显示
或者是字体缩小大一定的大小,这时候若缩小到一定的大小还是不能一行显示,则尾部省略。。。
自己做的话比较费劲,在晚上找了一圈之后发现了一个比较不错的框架:android-autofittextview
地址:https://github.com/grantland/android-autofittextview
具体的使用方式可以在其github网址上参考;
这里看一下例子展示:
1)当文字字数比较少的时候:
2)当文字字数比较多的时候:
3)当文字字数再多的时候:
可以看出来:当文字没有填充TextView完全时显示的就是默认的字体,当文字能够完全填充TextView并且一行显示不下时,他会默认的缩小文字的字体,当文字再多时,他会默认在末尾省略。。。
原理:
大概看了一下源码,主要是自定义TextView并继承系统的TextView,然后在绘制组件的时候根据getMaxLines方法获取内容的行数
若内容的行数大于1,则缩小文字的字体,然后在尝试获取getMaxLines方法,若内容的行数还是大于1,则据悉缩小文字的字体,直到内容能够一行显示
或者是字体缩小大一定的大小,这时候若缩小到一定的大小还是不能一行显示,则尾部省略。。。
相关文章推荐
- 公共技术点之 Android 动画基础
- android文件路径操作详解
- Android类似设置列表分类显示
- Android数据储存之File
- ScrollView嵌套ListView
- Android工具与其它
- github上有android开源项目
- android适配器优化封装
- Android异常汇集----4. Jar mismatch! Fix your dependencies
- 开发者日志(2016年01月27日18:31:16):关于android 动画学习
- 关闭 / 隐藏 Android 软键盘
- android 常用代码片段
- 直接拿来用!10款实用Android UI工具
- android学习视频
- 关于Android Studio里的Gradle,你所需要知道的都在这里了
- 在Android Studio中有六种依赖
- Android invalidate()源码分析
- android studio真机调试offline的问题
- 在线阅读android源代码
- MAC中设置android adb环境变量