0

嗨,我在 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);

如果这是一个错误,我已经告诉我,如果有另一种方法可以告诉我,非常感谢。

4

1 回答 1

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 类,其余部分相同。

于 2013-11-14T13:52:58.447 回答