Android重写getResources规避用户调整系统字体大小影响Android屏幕适配

Android屏幕适配一直是一个头疼的问题。除此之外还要考虑APP在实际应用场景中,用户千奇百怪的设置,最常见的用户设置行为就是设置手机的字体大小,比如把字体设置成超大或者超小,这对屏幕适配又带来额外的问题。解决这个问题的方法之一是通过在MainActivity(主activity,根activity)中重写getResources()规避用户大小字体的设置影响。

@Override
    public Resources getResources() {
        Resources res = super.getResources();
        Configuration config=new Configuration();
        config.setToDefaults();
        res.updateConfiguration(config,res.getDisplayMetrics());
        return res;
    }

注意!getResources()方法是全局的,由于重写了getResources()方法,导致APP全局将不再受到用户调整系统字体大小的影响。通过这种方法,APP的字体大小将固定显示给定的dp或sp,不再受用户设定系统字体显示大小的影响,在一定程度上解决了Android不同设备的适配问题。但是这样做也剥夺了用户选择的权利: 比如用户嫌弃字体小或者大,特意想通过设置系统字体显示大小的方法调整整体字体的显示效果。

原文地址:https://www.cnblogs.com/hehehaha/p/6147242.html