2011-09-07 18 views
5

Próbuję przełączyć tło przycisków, jeśli są one naciskane. Zbudowałem selektor taki jak sugerowana tutaj odpowiedź: Standard Android Button with a different colorPrzycisk wyboru tła przycisków

Wreszcie chcę umieścić GradientDrawables wewnątrz, ale dla celów debugowania chcę tylko ustawić kolor, aby zobaczyć, że działa. Oto moja Selector

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@color/red"/> 
    <item 
    android:state_focused="true" 
    android:drawable="@color/white"/> 
    <item 
    android:state_pressed="true" 
    android:drawable="@color/white"/> 
</selector> 

niestety to nie działa. Ustawiłem Selektor jako Tło z mojego przycisku i widzę je tylko w kolorze czerwonym. Co robię źle (Build Cel 2.1)

Odpowiedz

19

umieścić to w końcu

artykuł androida: odkształcalne = „@ kolor/czerwony”

to znaczy jako trzecia opcja, to będzie działać. Android sprawdza warunki xml od początku, pierwszy znacznik nie ma żadnego warunku, więc zawsze wybierze czerwony, więc najpierw postawiłeś warunki, a potem domyślny.

+0

hmm to nie działa, ponieważ teraz są białe cały czas –

+0

to przycisk pod naciskiem? –

+0

Nie sądzę. Mam dwa przyciski i oba są białe, bez zmiany kliknięcia –

0

Oto kod, którego używam i działa naprawdę dobrze.

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/button_clicked" 
     android:state_pressed="true" android:state_enabled="true" /> 

    <item android:drawable="@drawable/button" android:state_enabled="true" /> 
    </selector> 

tutaj używam dwóch obrazów zrobiłem za pomocą Photoshopa jako tło

pierwszy jest button_clicked a drugi przycisk

skopiować go i zmiana korzystać z własnych zasobów.

nadzieję, że mogłem pomóc :)

Powiązane problemy