原文链接:https://blog.csdn.net/yx1166/article/details/109336506
在Activity页面,通过获取系统的字体放大倍数,把倍数设置为1,从而保存Activity页面的字体大小不变。代码如下:
/**
* 重写 getResource 方法,防止系统字体影响
*/
@Override
public Resources getResources() {
//禁止app字体大小跟随系统字体大小调节
Resources resources = super.getResources();
if (resources != null && resources.getConfiguration().fontScale != 1.0f) {
android.content.res.Configuration configuration = resources.getConfiguration();
configuration.fontScale = 1.0f;
resources.updateConfiguration(configuration, resources.getDisplayMetrics());
}
return resources;
}
【注意】有人说,把这个方法在自定义Application中重写会生效。但是我发现,如果不在Activity中重写,只在Application中重写,实际测试是没有效果的。所以我建议在Activity层面重写,而不是Application层面。
我把重写 getResource 方法放在BaseActivity里了,这样所有的Activity都继承BaseActivity,只改一遍就可以用了