Android的fontScale不随系统设置变化

Android  代码片段  2022年11月7日 pm7:44发布2个月前更新 91es.com站长
93 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、 本站名称: 91易搜
2、 本站网址: 91es.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

无效的UTF-8字符串引发的问题

前言最近在调试多媒体时,出现特别奇怪的问题,也就是扫描磁盘中文件时被中断了,之前都是好的。记录于此,方便自己查阅。好记性不如烂笔头正文部分异常日志如下。 signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- Abort...

朱自清:背影

那年冬天,祖母死了,父亲的差使也交卸了,正是祸不单行的日子。我从北京到徐州打算跟着父亲奔丧回家。到徐州见着父亲,看见满院狼藉的东西,又想起祖母,不禁簌簌地流下眼泪。父亲说:“事已如此,不必难过,好在天无绝人之路!”回家变卖典质,父亲还了亏空;又借钱办了丧事。这些日子,家中光景很是惨淡,一半为了丧事...

林夕:赏味期限

那还是你和好友说着想要去很多很多地方的年纪。你踢踢踏踏地在走廊里面一边走一边数着自己到底想去多少个地方,好友跟在你的后面臭着一张脸喊,好高骛远的家伙,离开这里看谁天天陪你。你转身去拉她的手,笑得相当谄媚,说你可以陪我一起去呀。好友摇着手告诉你去去去,先把英文考及格了再说吧。所谓好友到底可以好成...

[摘]深入浅出UML类图(三)

本文作者:刘伟  http://blog.csdn.net/lovelion类与类之间的关系(2)      2. 依赖关系依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,...

ListView和GridView替换滑动条图片

前言记录一下AbsListView(ListView和GridView等)替换快速滑动条的几种方式。这里设计使用Java代码和xml配置方式。记录于此,方便自己查阅。正文主要涉及AbsListView的之类的修改。一般是换肤插件需要。隐藏内容!付费阅读后才能查看!¥2 ¥3多个隐藏块...

Android存储单位转换

G M K B 单位之间转换,直接上代码 // storage, G M K B public static String convertStorage(long size) { long kb = 1024; long mb = kb <...