如果要像微信一样,所有字体都不允许随系统调节而发生大小变化,要怎么办呢?利用Android的Configuration类中的fontScale属性,其默认值为1,会随系统调节字体大小而发生变化,如果我们强制让其等于默认值,就可以实现字体不随调节改变,在工程的Application或BaseActivity中添加下面的代码:
@OverridepublicvoidonConfigurationChanged(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 =newConfiguration();
newConfig.setToDefaults();
//设置默认
res.updateConfiguration(newConfig, res.getDisplayMetrics());
}
return res;
}
解决WebView不随系统字体大小而改变
webView.getSettings().setTextZoom(100);