2012-12-23 64 views
7

我有一個Android應用程序需要一些調整,如果用戶將他們的字體大小設置爲特大(通過設置 - >顯示 - >字體大小在4.0和更高)。確定用戶字體大小選擇

有我來告訴用戶的字體大小的喜好是什麼

更新一個簡單的方法:在我layout.xml
我也有類似的線設置一個按鈕

android:textAppearance="?android:attr/textAppearanceMedium" 
android:textStyle="bold" 
android:typeface="sans" 

請注意,我沒有直接設置字體大小。除了特大號設置以外,此佈局在所有情況下均可正常工作並且看起來不錯。在這種情況下,由於空間限制,它會導致按鈕的文本換行爲2行。

我的目標是使在超大的情況略有措辭變化,所以不換行

回答

6

有一個FONT_SCALE參數,你應該能夠查詢系統。我沒有用它自己,但我想檢索其價值將看起來有點像這樣:

float fontScale = Settings.System.getFloat(context.getContentResolver(), Settings.System.FONT_SCALE) 

不過,我也想指出的是,通常你不應該用這個值直接打交道。相反,使用文本內容的sp單位,以便您不必擔心自己調整爲用戶首選的字體大小,而是讓系統處理它。

另請參考:關於SP Why should we use sp for font sizes in Android?

+0

好一點,但在這種情況下不相關,看問題 – Noah

+0

更新的信息fontScale返回1.3海。很高興爲此找到一個常數,但我現在可以使用它。 – Noah

+0

奇怪你的代碼會拋出一個'SettingNotFoundException:font_scale',但我相信你和我的代碼是正確的(Android 4.2.2) – rekire

相關問題