[譯]如何在應用內部修改字型大小
阿新 • • 發佈:2018-11-10
最開始看到這個需求,首先想到的是修改每個文字顯示元件的textsize。看了下專案,那是相當的多啊。難道就沒有一種簡潔的方式麼?
看了下系統的顯示設定功能,有個字型大小調整,設定一下就修改了系統的字型大小。既然系統可以,那就應該有引數可以修改應用的字型大小。
google+stackoverflow
https://stackoverflow.com/questions/6786439/how-to-set-font-scale-in-my-own-android-application
程式碼如下:
Configuration configuration = getResources ().getConfiguration();
configuration.fontScale=(float) 1; //0.85 small size, 1 normal size, 1,15 big etc
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.scaledDensity = configuration.fontScale * metrics.density;
getBaseContext().getResources ().updateConfiguration(configuration, metrics);
// 一定要在之前設定,否則不生效的
setContentView(R.layout.activity_main);
原因:
其實是Configuration
裡的fontScale
欄位起的作用。
/**
* Current user preference for the scaling factor for fonts, relative
* to the base density scaling.
*/
public float fontScale;
翻譯過來就是相對基本密度縮放,縮放字型大小