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