2012-10-03 103 views
4

如何讓用戶選擇字體的能力?在「首選項」中,我想要更改字體和字體列表。Android選擇自定義字體

我已經設置這樣的字體:

mTimerLabel = (TextView)findViewById(R.id.label); 
Typeface typeface = Typeface.createFromAsset(getAssets(), "Fonts/digital-7i.ttf"); 
mTimerLabel.setTypeface(typeface); 

回答

2

你描述的TextView改變字體的正確模式。我無法理解你遇到的問題。爲textView調用首選項,選擇字體(或其ID)並進行設置。

+0

我不明白如何選擇字體ID。也就是說,如果用戶選擇「blabla.tff」如何設置它。 – user1704195

+0

至於我最簡單的方法是創建一個地圖,將包含首選項中的位置作爲一個鍵和字體名稱。例如:0 - bla.ttf 1 - blabla.ttf ... – SVS

+0

然後通過選擇偏好字段,您將獲得其ID並從地圖獲取字體名稱 – SVS

2

您必須將ttf存儲在資產文件夾中。另外,AFAIK你不能用大寫字母命名任何文件夾,就像你在Fonts中所做的那樣。其他方法很好。您可能想使用Logcat檢查您在首選項中存儲的值。

1

在首選項中存儲字體名稱,即digital-7i.ttf,當用戶選擇任何字體時,您可以從首選項中替換名稱並使用您的代碼。

SharedPreferences Settings = getSharedPreferences(
      "<PREF_NAME>", MODE_PRIVATE); 
    fontName = Settings.getString("<KEY>", "digital-7i.ttf"); 


mTimerLabel = (TextView)findViewById(R.id.label); 
Typeface typeface = Typeface.createFromAsset(getAssets(), "Fonts/"+fontName); 
mTimerLabel.setTypeface(typeface); 
+0

謝謝你的回答。 – user1704195