2012-12-24 15 views
5

Sto cercando di applicare un colore testo del pulsante di default in styles.xmlstile Android specificare pulsante del colore

<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> 

Come faccio a fare lo stile dei pulsanti cambiamento di colore, e applicare in tutta l'applicazione? La mia Mainfest comprende:

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

questo cambia tutto il testo (ad esempio un TextView), ma non cambia il testo in un pulsante. Se uso lo stile ColorThemes dall'alto e metterlo nel XML per il pulsante in questo modo:

<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" />" 

Poi funziona perfettamente. Perché questo non si applica universalmente a causa dello stile? Tutte le versioni differenti di styles.xml hanno lo stesso codice.

risposta

14

Alla fine ho scoperto che un pulsante è, in effetti, un'immagine a 9 patch che si trova in @android: drawable/btn_default per modificare lo sfondo è necessario modificare questa immagine. Per cambiare il colore del pulsante, ho dovuto impostare uno stile per il pulsante e importarlo nel mio tema dell'app in questo modo:

<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> 
Problemi correlati