Android系統默認是允許修改系統本身的字體大小的,導致頁面展示異常。
頁面展示異常是因為系統字體大小影響到了程序中字體的單位sp,所以解決此問題的方案1是,將布局中字體大小的單位sp換成dp
解決方案2:重寫Activity或Application中的getResources()方法,即:
@Override public void onConfigurationChanged(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 = new Configuration(); newConfig.setToDefaults();//設置默認 res.updateConfiguration(newConfig, res.getDisplayMetrics()); } return res; }