Aggiungerò la mia risposta poiché non utilizzo nessuna delle altre risposte fornite.
Con Support Library v7, tutti gli stili sono in realtà già definiti e pronti all'uso, per i pulsanti standard sono disponibili tutti questi stili:
style="@style/Widget.AppCompat.Button"
style="@style/Widget.AppCompat.Button.Colored"
style="@style/Widget.AppCompat.Button.Borderless"
style="@style/Widget.AppCompat.Button.Borderless.Colored"
Widget.AppCompat.Button
:
Widget.AppCompat.Button.Colored
:
Widget.AppCompat.Button.Borderless
Widget.AppCompat.Button.Borderless.Colored
:
Per rispondere alla domanda, lo stile da utilizzare è quindi
<Button style="@style/Widget.AppCompat.Button.Colored"
.......
.......
.......
android:text="Button"/>
Come cambiare il colore
Per l'intera app:
Il colore di tutti i controlli dell'interfaccia utente (non solo i pulsanti, ma anche i pulsanti di azione mobile, le caselle di controllo ecc.) È gestito dall'attributo colorAccent
come spiegato qui . Puoi modificare questo stile e applicare il tuo colore nella definizione del tema:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="colorAccent">@color/Orange</item>
</style>
Per un pulsante specifico:
Se è necessario modificare lo stile di un pulsante specifico, è possibile definire un nuovo stile, ereditando uno degli stili principali sopra descritti. Nell'esempio seguente ho appena cambiato lo sfondo e i colori dei caratteri:
<style name="AppTheme.Button" parent="Widget.AppCompat.Button.Colored">
<item name="colorButtonNormal">@color/Red</item>
<item name="android:textColor">@color/White</item>
</style>
Quindi devi solo applicare questo nuovo stile sul pulsante con:
android:theme="@style/AppTheme.Button"
Per impostare un design pulsante predefinito in un layout, aggiungi questa linea al tema styles.xml:
<item name="buttonStyle">@style/btn</item>
dov'è @style/btn
il tema del tuo pulsante. Questo imposta lo stile del pulsante per tutti i pulsanti in un layout con un tema specifico