对许多文本使用外部字体

时间:2013-11-14 13:45:31

标签: android textview

嗨,我在android中更新,我想问一下如何使用一种字体用于许多文本视图我已经使用这种方法

    final String DosisPath = "fonts/Dosis-Bold.ttf";
    final Typeface Dosis_Bold = Typeface.createFromAsset(getAssets(), DosisPath);
    TextView txtCancle = (TextView) findViewById(R.id.cancle);
    txtCancle.setTypeface(Dosis_Bold);

并且它工作正常,但我尝试为另一个TextView制作相同的字体,但这不会像这样工作

 final String DosisPath = "fonts/Dosis-Bold.ttf";
    final Typeface Dosis_Bold = Typeface.createFromAsset(getAssets(), DosisPath);
    TextView txtCancle = (TextView) findViewById(R.id.cancle);
    txtCancle.setTypeface(Dosis_Bold);
    EditText ETCode  = (EditText)findViewById(R.id.secET);
    ETCode.setTypeface(Dosis_Bold);

如果这是一个错误,我已经告诉我,如果还有另一种方式让我告诉我也非常感谢。

1 个答案:

答案 0 :(得分:1)

这就是你应该怎么做的。

创建一个类

public class TextViewContent extends TextView {

    public TextViewContent(Context context) {
        super(context);
        setCustomFont(context);
    }

    public TextViewContent(Context context, AttributeSet attrs) {
        super(context, attrs);
        setCustomFont(context);
    }

    public TextViewContent(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

        if (isInEditMode()) {
            return;
        }
        setCustomFont(context);

    }

    private void setCustomFont(Context ctx) {
        setTypeface(Typeface.createFromAsset(ctx.getAssets(),
                "Champagne_Limousines.ttf"));
    }
}

并在您的布局文件中

<com.hardik.test.widget.TextViewContent
            style="@style/TextMedium"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dip"
            android:layout_marginTop="5dip"
            android:gravity="center"
            android:text="@string/tag_line" />

这将以所选字体显示textview。对于EditText,您可以扩展EditText类,并且其余部分相同。