5

我想使用 android 中具有相同字体类型的所有组件,为此我为每个组件创建一个单独的自定义类,如 CustomTextView、CustomEditText 等。

因此,我可以创建一个视图 CustomView 类,而不是为每个组件创建一个单独的类,该类将自动为 android 中的所有组件应用样式

4

2 回答 2

1

只需声明您自己的 TextView 并在您的 XML 中使用它,它应该出现在自定义视图中

 public class MyTextView extends TextView {

public MyTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    setType(context);
}

public MyTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    setType(context);
}

public MyTextView(Context context) {
    super(context);
    setType(context);
}

private void setType(Context context){
    this.setTypeface(Typeface.createFromAsset(context.getAssets(), "chalk_board.ttf"));
}

哦,你希望它在全球范围内用于所有视图,所以这是错误的方法.... 抱歉

于 2013-10-08T12:55:40.243 回答
1

你至少有两种方法:

  • 创建自己的 TextView 类并在构造函数中设置 fontFace
  • 您可以使用自定义 LayoutInflater。每次视图膨胀时,检查它是否是 textView (或其他不扩展 textView 但具有字体设置的视图)并设置正确的 fontFace 设置。
于 2013-10-08T13:16:19.080 回答