4

如何赋予用户选择字体的能力?在“首选项”中,我想更改字体和字体列表。

我以这种方式设置了字体:

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

3 回答 3

2

您已经描述了在 textView 中更改字体的正确模型。我无法理解你所面临的问题。调用 textView 的首选项,选择字体(或其 id)并设置它。

于 2012-10-03T13:25:01.977 回答
2

您必须将 ttf 存储在您的资产文件夹中。此外,AFAIK 你不能用大写字符命名任何文件夹——就像你在Fonts. 其余的方法都很好。您可能希望使用 Logcat 检查您存储在首选项中的值。

于 2012-10-03T13:33:15.460 回答
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);
于 2012-10-03T13:37:20.367 回答