有时用户在使用APP时,会调节系统的字体大小,如果我们的应用APP没有做相关处理,会造成UI界面的错乱,处理办法有两种,我们先来看下Android中有关sp的描述:

Scale-independent Pixels – This is like the dp unit, but it is also scaled by
the user’s font size preference. It is recommend you use this unit when
specifying font sizes, so they will be adjusted for both the screen densityand the user’s preference.

“Android sp单位除了受屏幕密度影响外,还受到用户的字体大小影响,通常情况下,建议使用sp来跟随用户字体大小设置。除非一些特殊的情况,不想跟随系统字体变化的,可以使用dp”。按照这么说,布局宽高固定写死的地方应该统一用dp显示字体,因为一旦用户在设置中调大字体,宽高写死的布局显示就乱了。

这种方式只能解决使用了dp的字体,比较局面,要是想要像微信一样,所有字体都不允许随系统调节而发生大小变化,要怎么办呢?利用Android的Configuration类中的fontScale属性,其默认值为1,会随系统调节字体大小而发生变化,如果我们强制让其等于默认值,就可以实现字体不随调节改变,在工程的Application或BaseActivity中添加下面的代码:

@Override
public void onConfigurationChanged(Configuration newConfig) {if (newConfig.fontScale != 1)//非默认值getResources();    super.onConfigurationChanged(newConfig);
}@Override
public Resources getResources() {Resources res = super.getResources();if (res.getConfiguration().fontScale != 1) {//非默认值Configuration newConfig = new Configuration();       newConfig.setToDefaults();//设置默认        res.updateConfiguration(newConfig, res.getDisplayMetrics()); }    return res;
}

注:若是在Application中使用无效果,那么请在BaseActivity中使用,我最开始在Application中使用也是无效的,在BaseActivity中使用就可以了。

Android关于调节系统字体大小引起的适配问题相关推荐

  1. Android 中的字体大小适配

    Android系统中可以设置字体大小,对于一些设置了特大号字体的设备,往往会出现布局错乱的情况,对此,需要做相关的字体大小适配.根据聊聊 Android 中的字体大小适配这篇博客提供的方案,进行了一些 ...

  2. Android禁止app字体大小跟随系统字体大小调节

    Android禁止app字体大小跟随系统字体大小调节 针对字体不随系统应用改变而改变,不然会导致原来的一些布局变化,在Application中重写getResources() @Overridepub ...

  3. android 字体大小属于什么类型,聊聊 Android 中的字体大小适配

    本篇文章已授权微信公众号 guolin_blog(郭霖)独家发布 前言 虽然去年写的一篇文章[一种非常好用的Android屏幕适配]就包含字体大小适配,但那篇文章讲的是根据不同屏幕尺寸来适配字体大小的 ...

  4. android ui适配大字体,Android UI总结 Android 和H5 字体大小适配

    1.Android字体 1. 像素:像素(pixel)为图像的基本单位,是一个抽象的采样.一般作为一个最小的显示单位内置RGB. 2.屏幕尺寸:指屏幕的物理尺寸,一般用屏幕的对角线长度表示 3.宽高比 ...

  5. 改Android app字体,Android APP自定义字体大小修改

    简单记录下今天做的自定义字体大小修改的功能 需求:添加具体字体自定义大小功能.不需要跟随系统字体大小改变而改变 1.首先看一下用到的调节字体大小的控件: 字体大小调节页 控件继承自系统的SeekBar ...

  6. Android中,字体大小自适应不同分辨率,以及注意事项

    今天有人问我, Android系统不同分辨率,不同大小的手机,字体大小怎么去适应呢?其实字体的适应和图片的适应是一个道理的. 一. 原理如下: 假设需要适应320x240,480x320分辨率.在re ...

  7. Android全局修改字体大小,Android 仿微信全局字体大小调整

    image 目录 一.前言 二.效果预览 三.实现步骤 1.自定义字体调整控件 2.滑动按钮改变当前页面预览字体大小 3.返回时,保存放大倍数并重启应用 4.初始化应用时配置字体放大倍数. 四.Dem ...

  8. android 使用ios字体大小,ios和android上的字体大小不同

    您将密度设置为1.0,并告诉Android的WebView在您以特定方式声明视口时不会缩放任何东西.您可以删除该视口声明,然后会导致图像缩放以及字体,或者可以基于用户运行应用程序的Android设备修 ...

  9. android设置应用字体大小,在Android应用程序改变的TextView的字体大小从原始设置更改字体大小(Font size...

    我想在我的应用程序指定我自己的文字大小,但我有这样一个问题. 当我在设备设置中更改字体大小,我的应用程序的字体大小TextView也会改变. Answer 1: 其实,设置字体大小只影响大小sp . ...

最新文章

  1. 第 34 章 Gnuplot
  2. pip 系统无法将文件移到不同的磁盘驱动器 的问题
  3. win10用Eclipse+OpenJTag对S3C2440开发板进行动态调试
  4. 微软总裁比尔.盖茨给即将走出学校、踏入社会的青年一代下列11点忠告
  5. SQL Server 连接字符串
  6. 将一张图片修改为合适的像素大小
  7. [置顶] Oracle数据操作和控制语言详解
  8. Hibernate(一)——采用Hibernate框架开发环境搭建
  9. 8月23号,来上海整整一年
  10. 清华大学计算机考研资料汇总
  11. java简历模板 知乎,简历模板太多不知选哪种?让面试官眼前一亮的简历!
  12. c语言汉诺塔递归算法
  13. 运动目标跟踪(十七)--一些跟踪算法简述及跟踪牛人资料整理
  14. 批处理 %~dp0是什么意思
  15. React在ESLint下的报错收录(react-hooks/exhaustive-deps)
  16. 使用 teredo 穿透NAT访问 ipv6
  17. ESP8266-D1 mini-V2 认识
  18. Could not autowire. No beans of ‘PaymentService‘ type found.Inspection info:Checks autowiring proble
  19. Ambari配置邮件警告--监控大数据平台
  20. conflicts with file from package 解决办法

热门文章

  1. 先收藏!只需三步,教你做好 618 大促复盘!
  2. 模式识别学习笔记——第2章—2.4 两类错误率、Neyman-Pearson决策与ROC曲线
  3. 淘宝app详情接口,淘宝详情页接口,商品信息查询,商品详细信息接口,h5详情,宝贝详情页接口,商品属性接口,
  4. matlab 两幅图求并集,MATLAB交并集运算
  5. 正确涂CPU硅脂的方法要这样
  6. preall点云粗对齐作为matlab函数,pca和普氏分析法都有函数,主成分也有函数
  7. JNI和NKD入门系列一,纯java工程下JNI的开发流程(mac系统)
  8. 2.3 中国剩余定理
  9. PB8.0应用程序编译发布技术研究
  10. 研发侧利器!k3d+k3s,轻松管理本地k3s集群!