如何让用户选择字体的能力?在“首选项”中,我想要更改字体和字体列表。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