0

我需要在 XML 中更改我的应用程序的 Roboto 字体,并且我想在运行时更改 Roboto 字体。我怎么做?

4

1 回答 1

3

您为此使用资产文件。将您的字体转储到assets文件中。

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

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

请注意,在这里,Roboto 字体保存在 assets 中的另一个目录 fonts 中。

为了更好地实践,您可以创建一个单独的类来扩展您需要的视图。除了包名称,您还可以访问在 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
于 2013-12-27T08:31:04.037 回答