Android将TextView设置为嵌套类的实例

时间:2014-01-31 21:18:14

标签: android android-xml typeface

我目前正在检修我的应用程序字体以使用自定义字体。

我有一个这样的课程:

public class TextViewRobotoRegular extends TextView {

    public TextViewRobotoRegular(Context context, AttributeSet attrs) {
        super(context, attrs);

        if (!isInEditMode()) {
            setTypeface(Typefaces.get(context, "Roboto-BlackItalic"));           
        }
    }
}

其中Typefaces.get是指向缓存字体的方法,如果没有缓存,则创建一个新实例。

为了组织起见,我想知道是否可以为一个大类中的每个字体创建几个TextView类,类似这样

public class TextViews {

    public class RobotoRegular extends TextView {

        public TextViewRobotoRegular(Context context, AttributeSet attrs) {
            super(context, attrs);

            if (!isInEditMode()) {
                setTypeface(Typefaces.get(context, "Roboto-Thin"));           
            }
        }
    }

    public class RobotoThin extends TextView {

        public TextViewRobotoRegular(Context context, AttributeSet attrs) {
            super(context, attrs);

            if (!isInEditMode()) {
                setTypeface(Typefaces.get(context, "Roboto-Thin"));           
            }
        }
    }
}

我可以在xml布局文件中创建这些引用吗?类似的东西:

<com.example.appname.fontPackageName.TextViews.RobotoRegular
    android:id="@+id/profileNameView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

1 个答案:

答案 0 :(得分:1)

制作类RobotoRegular和RobotoThin 公共静态

并像这样编辑xml:

    <view class="com.example.appname.fontPackageName.TextViews$RobotoRegular"
    android:id="@+id/profileNameView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />