1. 禁止字體大小跟隨字體調節(jié)
在Application中重寫 getResources
//防止字體跟隨系統(tǒng)縮放
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 發(fā)現(xiàn)在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;
}