在Android中为整个应用程序更改XML的Roboto字体

时间:2013-12-27 08:26:53

标签: android android-xml android-fonts

我需要在XML中更改我的应用的Roboto字体,我想在RunTime更改Roboto字体。我该怎么做?

1 个答案:

答案 0 :(得分:3)

您可以使用资产文件。转储assets文件中的字体。

并相应地使用Typeface类设置字体样式。

Typeface style = Typeface.createFromAsset(asm, "fonts/Roboto-Bold.ttf");
view.setTypeFace(style);

请注意,此处,Roboto字体保存在资产内的另一个目录字体中。

为了更好的练习,您可以创建一个单独的类来扩展您需要的视图。除了包名称,您还可以在xml布局中访问创建的视图。

    public class BoldTextView extends TextView{

    public BoldTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }


    public BoldTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }


    public BoldTextView(Context context) {
        super(context);
        init();
    }

    private void init() {
        Typeface tf = Typeface.createFromAsset(getContext().getAssets(),
            "fonts/Roboto-Bold.ttf");
        setTypeface(tf);
    }

}

布局中对此类的引用:

com.your.packagename.BoldTextView