12

ボタンのテキストの外観は、次のようにオブジェクト内に設定することで変更できます。

<Button
        android:id="@+id/login_btn_bypass"
        android:textSize="15dp"
        android:textColor="#878787"
        android:textStyle="bold" />

ただし、スタイル内でtextAppearanceを使用する場合は使用できません

// in layout xml
<Button
    android:id="@+id/login_btn_login"
    android:textAppearance="@style/login_button_text_appearance" />

// in style definition 
<style name="login_button_text_appearance">
    <item name="android:textSize">15dp</item>
    <item name="android:textColor">#a7a7a7</item>
    <item name="android:textStyle">bold</item>
</style>

誰もが理由を知っていますか?

4

2 に答える 2

14

を使用して定義されtextAppearanceた属性の値は、スタイル内の属性の値の前に適用されます。AButtonTextViewスタイルが適用された であり、Button のデフォルト スタイルは textAppearance をオーバーライドします (たとえば、Android 2.3 では に設定されます?android:attr/textAppearanceSmallInverse) およびtextColor.

textAppearanceスタイルを値として受け入れます。android:textAppearance="@style/login_button_text_appearance"は通常、 a を設定する正しい方法ですが、 a の場合は正しくtextAppearanceありませんButton

のテキストの色を変更する場合はButton、カスタムの背景画像も適用する必要があります。これを行わないと、あるデバイスでは暗い背景画像 (motorola defy) が使用され、別のデバイスでは明るい画像 (htc 欲望) が使用されます。文字が読みにくくなる場合があります。

于 2011-11-23T17:08:41.347 に答える
11

使用する必要があると思います:

style = "@style/login_button_text_appearance"

それ以外の:

android:textAppearance="@style/login_button_text_appearance"

android:textAppearanceは、他の属性 ( android:textSize、など) と同様の単なる属性android:textStyleであり、スタイルの値はその属性の値として受け入れられません。

編集 :

<Button
    android:id="@+id/login_btn_login"
    style="@style/login_button_text_appearance" />
于 2011-11-23T16:07:43.293 に答える