在activity的基類里面重寫以下方法:(自留用)
//系統(tǒng)設(shè)置發(fā)生改變的時候會觸發(fā)以下方法:(如屏幕方向淡溯,鍵盤和文字大小等)
@Override
public void onConfigurationChanged(Configuration newConfig) {
?? //不是默認值
? ? if (newConfig.fontScale != 1)
? ? ? ? getResources();
? ? super.onConfigurationChanged(newConfig);
}
//重寫 getResource() 方法败富,修改 configuration 為 setToDefaults()
@Override
public Resources getResources() {
? ? Resources res = super.getResources();
? ? //非默認值
? ? if (res.getConfiguration().fontScale != 1) {
? ? ? ? Configuration newConfig = new Configuration();
?? ? ? //設(shè)置默認
? ? ? ? newConfig.setToDefaults();
? ? ? ? res.updateConfiguration(newConfig, res.getDisplayMetrics());
? ? }
? ? return res;
}
也可以在application的oncreate中設(shè)置:
// 加載系統(tǒng)默認設(shè)置羞海,字體不隨用戶設(shè)置變化
Resources res = super.getResources();
Configuration config = new Configuration();
config.setToDefaults();
res.updateConfiguration(config, res.getDisplayMetrics());
也可以在application中重寫getResources;
還有一個是網(wǎng)上提供的方法义图,將字體設(shè)置為dp棺滞,沒有試過将饺,有意向的可以嘗試一下。
感謝下面的博主:
https://blog.csdn.net/qq_31492865/article/details/82453968
自己的csdn:https://blog.csdn.net/li18518326892/article/details/106399530