因为每个人的习惯和视觉不一样,所以会调整系统的字体大小,但是系统字体大小调整后,app的字体也会随着变化,但是变化后布局就会遭到破坏,显示不完整,导致功能被掩盖无法使用,那么如果禁止app的字体随系统的字体调整变化呢?
方法一
把字体的尺寸由sp改为dp,这样字体就不会变化了,但是会对适配造成影响,所以不是最好的方法
方法二
在app启动后强制设置显示字体的比例为1,在Activity中重写getResources()方法,然后设置字体的显示比例为1,如果每个Activity都写一遍的话太啰嗦,维护又费劲,所以定义一个BaseActivity,在基类中重写getResources()方法,然后设置字体的显示比例为1,其他的Activity继承BaseActivity。
// 字体大小不跟随系统
@Overridepublic Resources getResources() {Resources res = super.getResources();Configuration config = new Configuration();config.setToDefaults(); // 设置为默认值res.updateConfiguration(config, res.getDisplayMetrics());return res;}
方法三
因为updateConfiguration方法已经被废弃了,所以方法二也不可取了,推荐使用createConfigurationContext方法,使用方法在Activity中重写