1. 程式人生 > >android設定系統文字大小後App的文字會變化

android設定系統文字大小後App的文字會變化

對於程式設計師來說,我們很少會去設定手機的字型大小,因此也不會出現設定字型後App介面變化。

但是近期由於我們開發的專案中巢狀的H5頁面太多,很多手機適配都沒有問題,唯獨有一款紅米Note2在載入H5頁面後變的面目全非,後來又採購了一臺紅米note2適配是沒有問題的。經過排查原因是,最初的紅米note2字型設定為大號字型。因此導致了原來的字型(sp)都會放大1.2倍,使介面不是預期的了。

經過一番折騰最終解決方案是在Activity裡面覆蓋下原來的getResources()方法

 @Override
    public Resources getResources() {
        Resources res = super.getResources();
        Configuration config = new Configuration();

//得到一個配置
        config.setToDefaults();

//給這個配置設定成預設值,也就是fontScale的值(這裡取值為1)
        res.updateConfiguration(config, res.getDisplayMetrics());

//更新資源裡面的配置
        return res;
    }

這樣就解決了字型的問題,主要的內容是設定了fontScale的值為1,而不是系統設定的值。

下面是預設的getResources()方法

@Override
public Resources getResources() {
    return super.getResources();
}
可以看出這個是直接返回一個Resources,這裡fontScale的取值分別是取的系統設定的值分別為: 小號0.9,標準1,中號1.06,大號1.12