Ich werde meine Antwort hinzufügen, da ich keine der anderen Antworten verwende.
Mit der Support Library v7 sind alle Stile bereits definiert und einsatzbereit. Für die Standardschaltflächen sind alle diese Stile verfügbar:
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
::
Um die Frage zu beantworten, ist daher der zu verwendende Stil
<Button style="@style/Widget.AppCompat.Button.Colored"
.......
.......
.......
android:text="Button"/>
So ändern Sie die Farbe
Für die gesamte App:
Die Farbe aller UI-Steuerelemente (nicht nur Schaltflächen, sondern auch schwebende Aktionsschaltflächen, Kontrollkästchen usw.) wird colorAccent
wie hier erläutert durch das Attribut verwaltet . Sie können diesen Stil ändern und Ihre eigene Farbe in Ihrer Themendefinition anwenden:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="colorAccent">@color/Orange</item>
</style>
Für eine bestimmte Schaltfläche:
Wenn Sie den Stil einer bestimmten Schaltfläche ändern müssen, können Sie einen neuen Stil definieren, der einen der oben beschriebenen übergeordneten Stile übernimmt. Im folgenden Beispiel habe ich gerade den Hintergrund und die Schriftfarben geändert:
<style name="AppTheme.Button" parent="Widget.AppCompat.Button.Colored">
<item name="colorButtonNormal">@color/Red</item>
<item name="android:textColor">@color/White</item>
</style>
Dann müssen Sie nur noch diesen neuen Stil auf die Schaltfläche anwenden mit:
android:theme="@style/AppTheme.Button"
Fügen Sie diese Zeile zum Thema styles.xml hinzu, um ein Standardschaltflächendesign in einem Layout festzulegen:
<item name="buttonStyle">@style/btn</item>
Wo @style/btn
ist dein Button-Thema? Dadurch wird der Schaltflächenstil für alle Schaltflächen in einem Layout mit einem bestimmten Thema festgelegt