最近遇到一个比较麻烦的bug,在一般android开发中,VIew字体的设置一直都是用的google推荐我们使用的sp,然而从android4.0起系统设置的”显示“提供设置字体大小的选项。好多老年人字体(特大号)设置直接会影响到所有sp为单位的字体适配,所以很多app在设置了系统字体后瞬间变得面目全非。
然而主流的app上并不会因为修改系统字体而发生应用内的字体变化。
有两种解决方案
1,将字体大小用dip或dp,这样字体就不会因为系统的修改而修改,但是会报黄线,毕竟google推荐使用sp,这种方法亲测可行,但不推荐
2.在activity的基类里重写getResources方法,将Configuration设置为默认,
@Override public Resources getResources() { Resources res = super.getResources(); Configuration config=new Configuration(); config.setToDefaults(); res.updateConfiguration(config,res.getDisplayMetrics() ); return res; }