加载自定义字体而不使用上下文

时间:2018-09-27 14:23:22

标签: java android

我已经知道Java及其工作原理,但是我是与android相关的新手。我有一个要使用的字体,我想将其加载到一个单独的类中,但是我发现的所有显示示例的网站都需要MainActivity对象的上下文,因为它使用了{{1} }函数。我需要在不使用该功能的情况下加载字体。

显示给我看的例子

getAssets()

1 个答案:

答案 0 :(得分:0)

创建CustomTextView类,并将其直接用作常规textview,如下所示

  

customtextview类文件

    public class CustomTextView extends TextView {
    public CustomTextView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

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

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

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

}

将此用作

 <core.com.example.CustomTextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:textColor="@color/colorBlack"
                android:textSize="14sp"
                android:text="Test text with custom font"
                android:lineSpacingExtra="2dp"
                />

更新

正如@EugenPechanec所评论的那样,您可以尝试这种方法来演示here.