Android的fontScale不随系统设置变化

Android  代码片段  2022年11月7日 pm7:44发布2个月前更新 城堡大人
104 0 0

前言

由于Android开发中部分第三方应用字体过小,用户会调整Android系统的字体大小,但由于我们应用是定制化开发的,改变字体也会影响我们应用的字体显示。

因此需求:定制化的APP内字体大小不随系统设置变化。

正文

在Activity中重写如下方法

    @Override
    protected void attachBaseContext(Context newBase) {
        super.attachBaseContext(getConfigurationContext(newBase));
    }

    private Context getConfigurationContext(Context context){
        if(null== context){
            return  null;
        }
        Configuration configuration = context.getResources().getConfiguration();
        //重新配置字体放大的倍数。
        configuration.fontScale= 1;
        return context.createConfigurationContext(configuration);
    }

当然也有其他的方式,如下面的

public void setDefaultFontAndDisplay(Activity activity){
    Resources resources = activity.getResources();
    Configuration configuration = resources.getConfiguration();
    configuration.fontScale = 1.0f;//重新配置字体放大的倍数。
    resources.updateConfiguration(configuration, resources.getDisplayMetrics());
}

上面两个都可以,但我的一个项目中使用第二种,在AndroidManifest.xml配置了configChanges,如下

android:configChanges="screenSize|keyboard|keyboardHidden|layoutDirection|mcc|mnc|locale|touchscreen|orientation|locale|screenLayout|uiMode|fontScale|smallestScreenSize|navigation"

就存在问题。

事后发现,很可能是监听了[fontScale]导致的。

参考文章

  1. Android 字体大小(fontScale)不随系统设置变化_宋冠巡的博客-CSDN博客

 历史上的今天

  1. 2019: 罗兰:早起看人间(0条评论)
版权声明 1、 本站名称: 笔友城堡
2、 本站网址: https://www.biumall.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权,请留言

暂无评论

暂无评论...

随机推荐

梁小斌:中国,我的钥匙丢了

中国,我的钥匙丢了。 那是十多年前,我沿着红色大街疯狂地奔跑,我跑到了郊外的荒野上欢叫,后来,我的钥匙丢了。 心灵,苦难的心灵,不愿再流浪了,我想回家打开抽屉、翻一翻我儿童时代的画片,还看一看那夹在书页里的翠绿的三叶草。 而且,我还想打开...

ViewPager的简单使用

前言ViewPager是Android中比较常见的控件,用处很大,比如广告循环播放,图片播放等都会考虑用这个。一直在用,但没有单独写一下,因此今天抽空记录一下,方便自己查阅。正文ViewPager还有一个升级版本ViewPager2,用法也差不多,但这里只介绍ViewPager的使用。个...

Android中实现延时执行操作的几种方法

总结一下:前三种方式都是运行在子线程中,最后一种是在主线程中的。实现延时执行操作的几种方法:1.使用线程的休眠实现延时操作 new Thread() { @Override public void run() { ...

Ubuntu允许root用户远程登录简单介绍

前言本文是简单记录允许远程使用root登入Ubantu。Ubuntu 版本: 18.04好记性不如烂笔头正文为了能够远程控制,需要经过如下几个步骤:修改root密码安装ssh以启动ssh服务修改允许远程使用root登入修改root密码打开Terminal# 使用下面命令...

[代码片段]Java获取某目录下文件总大小

前言代码功能:获取某目录下文件总大小项目中不仅需要判断磁盘大小,还需要限制拷贝目录大小。正文思路:递归目录下的所有文件,累加文件大小。当然,这种递归方式不是很好,因为存在目录层级复杂和文件多,导致耗时。 /** * * @param file * @...

MediaPlayer JNI层介绍

前言之前的《MediaPlayer java层介绍》只是介绍了java中的常用方法,对于JNI层的调用没有进一步介绍,今天就介绍一下JNI层。个人流水账哈,推荐看其他人的,我这只是自己的跟踪记录涉及的代码:frameworks\base\media\java\android\media\M...