Android 修改系统字体大小,导致页面展示异常解决方案

Android系统默认是允许修改系统本身的字体大小的,导致页面展示异常。

页面展示异常是因为系统字体大小影响到了程序中字体的单位sp,所以解决此问题的方案1是,将布局中字体大小的单位sp换成dp

解决方案2:重写Activity或Application中的getResources()方法,即:

 @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;
    }

即可

原文地址:https://www.cnblogs.com/ProMonkey/p/7832709.html