Android App字體不受系統字體大小影響

由於公司的App面向的用戶有小部分人是“大叔”級別的,他們喜歡把系統字體設置得很大,爲了App字體不受系統字體大小影響,於是在網上搜了一下,大概有2中解決辦法。

更新App的配置

簡單的來說,就是重寫我們BaseActivity的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;
}

這樣有個壞處,我嘗試使用過這種方法,會導致UI線程執行到這裏會有卡頓現象!

所以我們可以使用第二種方法。

使用dp來設置文字的大小

我們設置字體大小,一般都使用“sp”作爲單位的,我們來說說“sp”和“dp”的區別:

  • 使用sp作爲字體大小單位,會隨着系統的字體大小改變
  • dp作爲單位則不會

所以我們在設置字體時,如果不想佈局由於系統字體大小影響的,可以使用“dp”作爲字體的單位。

沒有這方便需求的,我們還是以“sp”作爲字體單位。

這裏只做一下記錄!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章