1. 程式人生 > >Android 修改系統字型大小,導致頁面展示異常解決方案

Android 修改系統字型大小,導致頁面展示異常解決方案

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;
   }