1. 程式人生 > >[譯]如何在應用內部修改字型大小

[譯]如何在應用內部修改字型大小

最開始看到這個需求,首先想到的是修改每個文字顯示元件的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;

翻譯過來就是相對基本密度縮放,縮放字型大小