Android - 如何在我的整个应用程序中添加文本样式

时间:2014-06-12 13:37:28

标签: android typeface

我在Helvetica Neue.ttf文件夹中有asset,如何在我的整个应用程序中设置Helvetica Neue文字样式。

1 个答案:

答案 0 :(得分:0)

目前无法使用Android SDK附带的视图执行此操作。您可以将视图设置为按照this answer使用任何Roboto字体,但不能设置自定义字体。

我通常解决这个问题的方法是创建我自己的使用我的字体的TextView,如下所示:

public class MyFontTextView extends TextView {
    public static final String FONT_PATH = "fonts/MyFont.ttf";

    public MyFontTextView(Context context) {
        super(context);
        initFont();
    }

    public MyFontTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        initFont();
    }

    public MyFontTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        initFont();
    }

    /**
     * Set up the font.
     */
    private void initFont() {
        if (!isInEditMode()) {
            Typeface font = Typeface.createFromAsset(getContext().getAssets(), FONT_PATH);
            setTypeface(font);
        }
    }
}

使用此TextView替换所有TextView,然后您将拥有自己的字体。请注意,除非您也自定义这些元素,否则其他UI元素(例如按钮)仍会使用Roboto。

如果您有一个只在应用程序中使用过一次的视图,则可以在该视图上调用setTypeFace(),而不是创建自定义视图。自定义View方法适用于在TextViews等应用程序中大量使用的视图。