将视图样式放在资源文件中

时间:2014-04-24 21:57:15

标签: android android-styles

我有一些自定义的视图,如:

public class CustomizedTextView extends TextView {
...
    public CustomizedTextView(Context context) {
        this.setText(TEXT_COLOR);
        this.setTextSize(TEXT_SIZE);
        this.setTypeFace(TYPE_FACE);
        this.setPadding(LEFT, TOP, RIGHT, BOTTOM);
        ...
    }
}

如您所见,这些样式设置和相应的常量需要多行代码。所以我想在资源文件中将它分开。

我已经浏览了Android documentation,它说你可以定义一个样式文件,如:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CodeFont" parent="@android:style/TextAppearance.Medium">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:textColor">#00FF00</item>
        <item name="android:typeface">monospace</item>
    </style>
</resources>

但我没有找到像setStyle(R.style.style001)这样的API来设置代码中的样式。我还在这里找到了一个帖子:android set style in code

基本上它说你不能在代码中做到这一点。不过这篇文章是三年前我不确定API 19的情况。因为在Android中定义自定义视图是如此常见,我不明白为什么这是不可能的。

1 个答案:

答案 0 :(得分:0)

您可以使用setTextAppearance这样设置文本视图样式

  textView.setTextAppearance(context, R.style.CodeFont);