解決Android系統預設字體過大影響佈局問題

解決 Android 系統字體影響布局問題

2017/10/31 於教育訓練後遇到的問題,某些使用者將系統預設字體設定為 [極大] ,或者其他導致佈局混亂的大小,導致某些功能無法正常使用(被遮掩)。

解決辦法是 Configuration

  • 藉由取得系統Configuration以及其fontScale來做判斷,進而取得控制佈局的可能。
  • 以下直接以程式碼作範例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Configuration configuration = getResources().getConfiguration();
    Resources res = getResources();
    if(configuration.fontScale>=1.35)
    {
    Configuration newconfig = new Configuration();
    newconfig.setToDefaults();
    newconfig.fontScale=1.2f;
    res.updateConfiguration(newconfig,res.getDisplayMetrics());
    }
    /*
    * fontScale = 1f (正常)
    * fontScale = 1.2f (大)
    * fontScale = 1.35f (極大)
    */
  • if判斷式中我設定為大於1.35就進行縮小Scale的行為,主要是因為當Scale大於1.35時,我的佈局會產生影響使用者體驗的問題,所以判斷式成立後,就直接將Scale縮小至1.2倍,如此即解決該問題。

文章目錄
  1. 1. 解決 Android 系統字體影響布局問題
    1. 1.1. 解決辦法是 Configuration
|