Android 中的字体大小适配
Android系统中可以设置字体大小,对于一些设置了特大号字体的设备,往往会出现布局错乱的情况,对此,需要做相关的字体大小适配。根据聊聊 Android 中的字体大小适配这篇博客提供的方案,进行了一些改进,找到了一种比较合适的方式,将字体大小控制在合理范围内。
以MIUI为例,系统中设置的字体大小对应的fontScale如下
巨无霸 1.4
超大 1.4
大号 1.32
中号 1.15
标准 1
小号 0.86
小号字体下,会比较精致,不作处理。对于大号字体,使其fontScale强制改为指定值,以解决布局错乱的情况。
封装为工具类如下
public class FontCompatUtils {public static final float MAX_FONT_SCALE = 1.10F; //可自行修改最大缩放值public static final String TAG = "FontCompatUtils";private static Float fontScalePercent = null;public static Resources getResources(Resources res) {Configuration configuration = res.getConfiguration();if (fontScalePercent == null) {fontScalePercent = 1 / configuration.fontScale;}if (shouldChangeFontScale(configuration)) {//非默认值Configuration newConfig = new Configuration();newConfig.setToDefaults();//设置默认//configuration.fontScale = MAX_FONT_SCALE;res.updateConfiguration(newConfig, res.getDisplayMetrics());}return res;}/*** 是否需要改变字体缩放级别** @param configuration* @return*/public static boolean shouldChangeFontScale(Configuration configuration) {return configuration.fontScale > MAX_FONT_SCALE;}/*** 字体缩放比例** @return*/public static Float getFontScalePercent() {if (fontScalePercent == null) {return 1F;}return fontScalePercent;}
}
然后,在Application和BaseActivity中,重写getResources
和onConfigurationChanged
方法
@Override
public void onConfigurationChanged(Configuration newConfig) {if (FontCompatUtils.shouldChangeFontScale(newConfig))getResources();super.onConfigurationChanged(newConfig);
}@Override
public Resources getResources() {return FontCompatUtils.getResources(super.getResources());
}
至此,我们就完成了字体大小的适配。
其他
更多适配方案,详见聊聊 Android 中的字体大小适配
屏幕适配方案详见 Android屏幕适配大全
Android 中的字体大小适配相关推荐
- android 字体大小属于什么类型,聊聊 Android 中的字体大小适配
本篇文章已授权微信公众号 guolin_blog(郭霖)独家发布 前言 虽然去年写的一篇文章[一种非常好用的Android屏幕适配]就包含字体大小适配,但那篇文章讲的是根据不同屏幕尺寸来适配字体大小的 ...
- android ui适配大字体,Android UI总结 Android 和H5 字体大小适配
1.Android字体 1. 像素:像素(pixel)为图像的基本单位,是一个抽象的采样.一般作为一个最小的显示单位内置RGB. 2.屏幕尺寸:指屏幕的物理尺寸,一般用屏幕的对角线长度表示 3.宽高比 ...
- Android中,字体大小自适应不同分辨率,以及注意事项
今天有人问我, Android系统不同分辨率,不同大小的手机,字体大小怎么去适应呢?其实字体的适应和图片的适应是一个道理的. 一. 原理如下: 假设需要适应320x240,480x320分辨率.在re ...
- 聊一聊Android中的字体适配
今日科技快讯 据The Verge报道,就在发射进入轨道的第二天,SpaceX的"载人龙飞船"(Crew Dragon)与国际空间站实现对接,这是该公司目前测试飞行的关键部分.当& ...
- Android中设置字体居中,【Android】TextView中不同大小字体如何上下垂直居中?
前言 在客户端开发中,我们往往需要对一个TextView的文字的部分内容进行特殊化处理,比如加粗.改变颜色.加链接.下划线等.iOS为我们提供了AttributedString,而Android则提供 ...
- android 设置字体大小和不同颜色,Android代码中设置字体大小,字体颜色,显示两种颜色.倒计时效果...
Android代码中设置字体大小,字体颜色,显示两种颜色 在xml文件中字体大小用的像素 android:id="@+id/uppaid_time" android:layout_ ...
- android 字体慢慢变大 网易新闻,如何在网易新闻中设置字体大小?在网易新闻中设置字体大小的方法...
大家经常使用网易新闻吧,我们可以在里面查看许多新的消息,下面小编给大家分享一下在网易新闻中设置字体大小的方法,希望会对你有所帮助. 1.打开网易新闻客户端,进入网易新闻主界面后,在主界面中可以看到当天 ...
- iOS字体大小适配的几种方法
摘要:在iOS开发中,有些公司对字体也有适配要求,为了让字体美观,所以在不同尺寸的屏幕上字体大小也要做到适配. 自己总结了几种方法供大家参考. 方法一:用宏定义适配字体大小(根据屏幕尺寸判断) //宏 ...
- iOS字体大小适配机型的几种方法
在iOS开发中,有些公司对字体也有适配要求,为了让字体美观,所以在不同尺寸的屏幕上字体大小也要做到适配. 自己总结了几种方法供大家参考. 方法一:用宏定义适配字体大小(根据屏幕尺寸判断) //宏定义 ...
最新文章
- 如果QQ秀和拍拍(易迅)深度合作,会有哪些化学反应?
- 谷歌的算法笔记火了,技术真牛!
- 使用js如何获取treeview控件的当前选中的节点
- Tomcat闪退的解决办法
- tensorflow 十四 强化学习Q-learning
- [Android]Thread线程入门3--多线程
- TypeScript入门指南(译文)
- 卖出总数的一半又少8个_(完整版)第九讲还原问题(三年级奥数)
- springboot项目发布到独立的tomcat中运行
- USB-HDD/ZIP/HDD+/ZIP+/CDROM(量产) U盘启动模式简介
- Ubuntu如何简单粗暴的恢复被删除的文件
- Android View事件分发机制
- 基于thrift的匹配操作
- Windows10的虚拟桌面
- excel内容少却文件很大_(excel内容很少,文件却很大,怎么解决)excel表格数据少但是过大怎么办...
- (转载)有关推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟输入区别...
- 火车头采集细节(一)
- Windpy + Pycharm(No such file报错解决方式)
- joan sola_Joan Touzet在CouchDB和Apache方式上
- linux:redis安装、报错 oO0OoO0OoO0Oo