如果要像微信一樣,所有字體都不允許隨系統調節而發生大小變化,要怎么辦呢?利用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);