解决Android7.0以上 APP字体大小,不随系统的字体大小变化而变化的方法
在activity基类(app中所有的activity都应该有继承于我们自己定义的一个BaseActivity类)中加上以下code:
@Override
public ResourcesgetResources() {
Resources res =super.getResources();
Configuration newConfig =new Configuration();
//控制字体缩放 1.0为默认
newConfig.fontScale =1.0f;
DisplayMetrics displayMetrics = res.getDisplayMetrics();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
//7.0以上系统手机 显示大小 对APP的影响
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
if (displayMetrics.density < DisplayMetrics.DENSITY_DEVICE_STABLE / (float) DisplayMetrics.DENSITY_DEFAULT) {
displayMetrics.densityDpi = (int) (DisplayMetrics.DENSITY_DEVICE_STABLE *0.92);
}else {
displayMetrics.densityDpi = DisplayMetrics.DENSITY_DEVICE_STABLE;
}
newConfig.densityDpi = displayMetrics.densityDpi;
}
createConfigurationContext(newConfig);
}
res.updateConfiguration(newConfig, displayMetrics);
return res;
}
网友评论