让用户在Android应用程序中切换不同的字体

时间:2014-10-13 22:35:43

标签: android

我正在寻找一个完整的答案,在这里和那里搜索,但没有机会。 顺便说一下,我是android的新手 我想在我的应用程序中使用3种不同的字体,这些字体位于“设置”活动中,每种字体都有三个按钮或单选按钮,以便用户可以选择他们喜欢的字体,点击保存按钮后,所有活动的字体都会发生变化。
这就是我所知道的:
将fon.ttf放在资产中的fonts文件夹中 我知道如何使用字体将字体设置为textView 我在这里看到答案Android: Want to set custom fonts for whole application not runtime
但没有什么可以告诉我我需要学习什么 如果有可能,请给我一个代码 或者告诉我应该怎么做 谢谢

2 个答案:

答案 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中,通过共享优先选项检查字体是否存在,如果存在,则调用上面的方法进行设置。