代码与资源之间的setTextAppearance之间的区别

时间:2011-12-18 21:51:38

标签: android

当我以编程方式调用setTextAppearance(this, android.R.style.TextAppearance_Medium)时,我会使用浅灰色文本获得中等大小的字体。

然而,当我在xml中使用android:textAppearance="@android:style/TextAppearance.Medium"时,我会得到相同大小的文本,但它是黑色的。

这些之间有什么区别?

xml文件的相关部分如下所示:

<Button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textAppearance="@android:style/TextAppearance.Medium"
    android:text="Button" />

代码如下所示:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button button = (Button)findViewById(R.id.button1);
    button.setText("This is a long text");
    //button.setTextAppearance(this, android.R.style.TextAppearance_Medium);
}

2 个答案:

答案 0 :(得分:8)

正确答案为setTextAppearance(context, android.R.style.TextAppearance_Large);

答案 1 :(得分:1)

不应该有所不同。获得不同颜色的唯一方法是:

1)在setTextAppearance

之后以编程方式更改文本颜色

2)你的xml文件包含一个黑色的android:textColor。

如果您的xml代码包含android:textColor属性,Android将使用该属性,而不是xml中定义的那个。如果手动设置TextAppearance,将使用样式的颜色。

因此,你可能在该元素的xml中有android:textColor =“#000000”