Mam przycisk, który zawiera rysowanie i tekst. Chcę, aby tło przycisku różniło się od normalnego (najlepiej zwykłego koloru). Działa to dobrze, po prostu używam atrybutu android:background
w pliku XML i odpowiednio przypisuję kolor. Jednak chcę, aby tło zmieniło się na inny kolor po wybraniu lub skupieniu (selektor stanu).Jak ustawić niestandardowy kolor tła przycisku?
próbowałem stworzyć selektor w rozciągliwej folderu ze zdefiniowanymi kolorami (który działa dobrze podczas pracy z tekstem przycisku), tak jak poniżej:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:color="@color/green" />
<item android:state_focused="true" android:state_pressed="true" android:color="@color/green" />
<item android:state_focused="false" android:state_pressed="true" android:color="@color/green" />
<item android:color="@color/white" />
</selector>
i ustawić ten XML jako atrybutu android:background
, tak jak poniżej:
android:background="@drawable/button_state"
ale to powoduje, że siła blisko stwierdzając:
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/button_state.xml from drawable resource ID #0x7f020070
, ale zasób tam jest. Nie możesz dostosować stanu tła? Jeśli możesz, jak? albo co robię źle? Dzięki za pomoc!
Możesz zdecydowanie użyć selektora jako tła do rysowania. Gdzie dokładnie umieściłeś 'button_state.xml'? –
Umieściłem go w folderze do rysowania, jak to często robię. A po uruchomieniu aplikacja się zamyka, więc nie może potwierdzić mojego pliku xml – chRyNaN
lub może rozpoznaje plik xml, bo jeśli użyję go z atrybutem textColor, to działa dobrze. Tylko wtedy, gdy używam go z atrybutem tła, wymusza on zamknięcie – chRyNaN