1. 禁止字体大小跟随字体调节
在Application中重写 getResources
//防止字体跟随系统缩放
public final static int FONTSCALE = 1;
/**
* 让字体放大无效
*
* @param newConfig
*/
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (newConfig.fontScale != FONTSCALE) {
getResources();
}
super.onConfigurationChanged(newConfig);
}
@Override
public Resources getResources() {
Resources res = super.getResources();
if (res.getConfiguration().fontScale != FONTSCALE) {
//非默认值
Configuration newConfig = new Configuration();
newConfig.setToDefaults();
//设置默认
res.updateConfiguration(newConfig, res.getDisplayMetrics());
}
return res;
}
2. android 8.0 发现在Application中重写是无效的
需要在每个使用到的Activity中重写 getResources
这里在BaseActivity
中重写 getResources
@Override
public Resources getResources() {//还原字体大小
Resources res = super.getResources();
Configuration configuration = res.getConfiguration();
if (configuration.fontScale != DoApplication.FONTSCALE) {//fontScale要缩放的比例
configuration.fontScale = DoApplication.FONTSCALE;
res.updateConfiguration(configuration, res.getDisplayMetrics());
}
return res;
}