Ответ 1
правильный ответ setTextAppearance(context, android.R.style.TextAppearance_Large);
Когда я вызываю setTextAppearance(this, android.R.style.TextAppearance_Medium)
программно, я получаю шрифт среднего размера со светло-серым текстом.
Однако, когда я использую android:textAppearance="@android:style/TextAppearance.Medium"
в xml, я получаю текст того же размера, но он окрашен в черный цвет.
В чем разница между ними?
Соответствующая часть 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);
}
правильный ответ setTextAppearance(context, android.R.style.TextAppearance_Large);
Это не должно быть иначе. Единственный способ получить другой цвет - либо:
1) изменить цвет текста программно после вашего setTextAppearance
или
2) Ваши xml файлы содержат андроид: textColor с черным.
Если ваш xml-код содержит атрибут android: textColor, Android будет использовать его, а не тот, который определен в xml. Если вы вручную установитеTextAppearance, будет использоваться цвет стиля.
Следовательно, у вас, вероятно, есть android: textColor = "# 000000" в xml для этого элемента