我正在寻找一个完整的答案,在这里和那里搜索,但没有机会。
顺便说一下,我是android的新手
我想在我的应用程序中使用3种不同的字体,这些字体位于“设置”活动中,每种字体都有三个按钮或单选按钮,以便用户可以选择他们喜欢的字体,点击保存按钮后,所有活动的字体都会发生变化。
这就是我所知道的:
将fon.ttf放在资产中的fonts文件夹中
我知道如何使用字体将字体设置为textView
我在这里看到答案Android: Want to set custom fonts for whole application not runtime
但没有什么可以告诉我我需要学习什么
如果有可能,请给我一个代码
或者告诉我应该怎么做
谢谢
答案 0 :(得分:0)
在您的设置活动中,当用户选择字体大小时,将其作为整数保存到首选项
然后,在您需要字体大小的活动中,从prefs中获取值,并相应地设置文本大小。
这是一个例子
MainActivity.java
public class MainActivity extends Activity {
public int fontSize = 0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout);
//grab all textViews
TextView tv = (TextView) findViewById(R.id.your_text_view_id);
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(MainActivity.this);
fontSize = prefs.getInt("pref_fontSize", 12);
tv.setTextSize(fontSize);
}
}
如果您需要进一步的帮助,请发布您的设置代码和您的活动代码
答案 1 :(得分:0)
将不同的字体放在资产文件夹。
现在,当您想要在应用中更改字体时,请从资产中选择所需的字体。确保字体格式为 ttf 。这是一个例子 -
public void setFont(String FONTNAME) { //Just the font name. Don't add ttf at end
Typeface tf = Typeface.createFromAsset(getAssets(),FONTNAME + ".ttf");
//Select font from asset folder
//Make sure that the font with that name exists in asset folder
textview.setTypeface(tf);
//Set it to textview or any text field
//Do it muliple times if you have many textfields
//Also create different methods in other activities to set the font to them
//and then call then from here
}
如果要在每次打开应用时向用户显示相同的字体,请使用共享首选项保存字体名称。然后在onCreate method
中,通过共享优先选项检查字体是否存在,如果存在,则调用上面的方法进行设置。