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

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

解決辦法是 Configuration

  • 藉由取得系統Configuration以及其fontScale來做判斷,進而取得控制佈局的可能。
  • 以下直接以程式碼作範例:
    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倍,如此即解決該問題。

results matching ""

    No results matching ""