2012-10-03 57 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