如何讓用戶選擇字體的能力?在「首選項」中,我想要更改字體和字體列表。Android選擇自定義字體
我已經設置這樣的字體:
mTimerLabel = (TextView)findViewById(R.id.label);
Typeface typeface = Typeface.createFromAsset(getAssets(), "Fonts/digital-7i.ttf");
mTimerLabel.setTypeface(typeface);
如何讓用戶選擇字體的能力?在「首選項」中,我想要更改字體和字體列表。Android選擇自定義字體
我已經設置這樣的字體:
mTimerLabel = (TextView)findViewById(R.id.label);
Typeface typeface = Typeface.createFromAsset(getAssets(), "Fonts/digital-7i.ttf");
mTimerLabel.setTypeface(typeface);
你描述的TextView改變字體的正確模式。我無法理解你遇到的問題。爲textView調用首選項,選擇字體(或其ID)並進行設置。
您必須將ttf存儲在資產文件夾中。另外,AFAIK你不能用大寫字母命名任何文件夾,就像你在Fonts
中所做的那樣。其他方法很好。您可能想使用Logcat檢查您在首選項中存儲的值。
在首選項中存儲字體名稱,即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);
謝謝你的回答。 – user1704195
我不明白如何選擇字體ID。也就是說,如果用戶選擇「blabla.tff」如何設置它。 – user1704195
至於我最簡單的方法是創建一個地圖,將包含首選項中的位置作爲一個鍵和字體名稱。例如:0 - bla.ttf 1 - blabla.ttf ... – SVS
然後通過選擇偏好字段,您將獲得其ID並從地圖獲取字體名稱 – SVS