android项目中的自定义字体

时间:2012-04-10 20:56:36

标签: android fonts

我正在尝试为我的项目分配不同的字体。 我希望新字体对整个项目有效,但我找到的只是将字体更改为textview

Typeface font1 = Typeface.createFromAsset(getAssets(), "fonts/RockFont.ttf");
TextView customText1 = (TextView)findViewById(R.id.text1);
customText1.setTypeface(font1);
customText1.setTextSize(40.f);
customText1.setText("Hello! This is a custom font...");

有没有办法将整个项目默认为自定义字体? 最好的关注

2 个答案:

答案 0 :(得分:0)

不完全符合您的要求,但在上述评论的基础上,可以更方便地使用自定义字体和默认控件。

这显示了如何扩展TextView并使用自定义属性,以便TextView支持自定义字体 Custom fonts and XML layouts (Android)

答案 1 :(得分:0)

我所做的是创建一个支持类,并从我的活动中实例化它,并传递我希望设置的所有视图。

public class textfactory{
private TextView tv;
private Button b;
private RadioButton rb;

private TypeFace font;

/**
* fetch font resource
*/
public textfactory(Context context){
    this.font = Typeface.createFromAsset(context.getAssets(), 'customfont.ttf');
}
/**
* pass in all the views you wish to apply font to
*/
public void style(View... views){
    for(View v : views){
        if(v instance of TextView)
        {
            tv = (TextView)v;
            tv.setTypeface(this.font);
        }
        else if(v instance of Button)
        {
            b = (Button)v;
            b.setTypeface(this.font);
        }
        else if(v instance of RadioButton)
        {
            rb = (RadioButton)v;
            rb.setTypeface(this.font);
        }
        //add as many view conditionals as required
    }
}
}