8

styles.xmlでデフォルトでボタンのテキストの色を適用しようとしています

<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppTheme">
   <item name="android:windowFullscreen">true</item>
   <item name="android:windowBackground">@color/black</item>
   <item name="android:textColor">@color/green</item>
</style> 

スタイルをボタンの色に変更し、アプリケーション全体に適用するにはどうすればよいですか? 私の主な内容は次のとおりです。

    <application
    android:icon="@drawable/ic_launcher"
    android:label="Hack the World"
    android:theme="@style/AppTheme">

これにより、すべてのテキスト (TextView など) が変更されますが、ボタン内のテキストは変更されません。上記の ColorThemes スタイルを使用して、次のようにボタンの xml に配置すると:

    <Button
    android:id="@+id/button3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:onClick="loadSavedgame"
    android:text="Load Saved Game" 
    android:textColor="@color/green" />"

その後、それは完全に機能します。スタイルのために、これが普遍的に適用されないのはなぜですか? すべての異なるバージョンのstyles.xmlのコードは同じです。

4

1 に答える 1

19

最終的に、ボタンは実際には @android:drawable/btn_default にある 9 パッチ画像であり、背景を変更するにはこの画像を変更する必要があることがわかりました。ボタンのテキストの色を変更するには、ボタン ウィジェットのスタイルを設定し、次のようにアプリのテーマにインポートする必要がありました。

<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar" >
   <item name="android:windowFullscreen">true</item>
   <item name="android:windowBackground">@color/black</item>
   <item name="android:textColor">@color/green</item>
   <item name="android:buttonStyle">@style/ButtonText</item>
</style> 

    <style name="ButtonText" parent="@android:style/Widget.Button">
   <item name="android:textColor">@color/green</item>
   <item name="android:background">@android:drawable/btn_default</item><!-- only way to change this is to change the src image -->
   <item name="android:layout_width">80.0px</item>
   <item name="android:layout_height">40.0px</item> 
</style> 
</resources>
于 2012-12-25T19:29:17.610 に答える