Podczas używania android:background
zamieniasz większość stylizacji i wyglądu przycisku na pusty kolor.
Aktualizacja: W tej wersji 23.0.0 zwolnienia z AppCompat , pojawił się nowy Widget.AppCompat.Button.Colored
styl, który wykorzystuje swoją motywu colorButtonNormal
dla niepełnosprawnych koloru i colorAccent
dla włączonego koloru.
Pozwala to zastosować go bezpośrednio do przycisku
<Button
...
style="@style/Widget.AppCompat.Button.Colored" />
Jeśli potrzebujesz niestandardowego colorButtonNormal
lub colorAccent
, możesz użyć narzędzia ThemeOverlay
opisanego w tym poradniku i android:theme
na przycisku.
Poprzednia odpowiedź
Możesz użyć rysowania w katalogu v21 dla swojego tła, takiego jak:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item android:drawable="?attr/colorPrimary"/>
</ripple>
Zapewni to ?attr/colorPrimary
domyślny kolor tła i domyślną animację tętnienia przy użyciu domyślnej ?attr/colorControlHighlight
(którą możesz również ustawić w motywie, jeśli chcesz).
Uwaga: musisz utworzyć niestandardowy selektor dla wersji mniejszej niż 21:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/primaryPressed" android:state_pressed="true"/>
<item android:drawable="@color/primaryFocused" android:state_focused="true"/>
<item android:drawable="@color/primary"/>
</selector>
Zakładając, że masz kilka kolorów, które chcesz ustawić w stanie domyślnym, wciśniętym i skupionym. Osobiście zrobiłem zrzut ekranu tętnienia w połowie drogi i zostałem z tego wyciągnięty stan podstawowy / skupiony.