コード対リソースのsetTextAppearanceの違い

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);
}
11

2 答え

the correct response is setTextAppearance(context, android.R.style.TextAppearance_Large);

8
追加された

それは異なってはいけません。別の色を取得する唯一の方法は、次のいずれかです。

1)setTextAppearanceの後にプログラムでテキストの色を変更する

または

2) Your xml files contains a android:textColまたは with black.

If your xml code contains the android:textColまたは attribute, Android will use that one, rather than the one defined in xml. If you manually setTextAppearance, the colまたは of the style will be used.

Hence, you probably have android:textColまたは="#000000" in the xml fまたは that element

1
追加された
いいえ、どこでもテキストの色を変更しないでください
追加された 著者 user204884,
nope - コードを含む更新された質問を参照
追加された 著者 user204884,
また、XMLにはアンドロイド:textColor = ""もありません。
追加された 著者 Entreco,
奇妙な...あなたが解決策を見つけたらいつかお知らせください。申し訳ありませんあなたを助けることはできません
追加された 著者 Entreco,