解決 Android 系統字體影響布局問題
2017/10/31 於教育訓練後遇到的問題,某些使用者將系統預設字體設定為 [極大] ,或者其他導致佈局混亂的大小,導致某些功能無法正常使用(被遮掩)。
解決辦法是 Configuration
- 藉由取得系統
Configuration
以及其fontScale
來做判斷,進而取得控制佈局的可能。 以下直接以程式碼作範例:
123456789101112131415Configuration 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
倍,如此即解決該問題。