当我以编程方式调用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);
}
答案 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”