2012-05-03 14 views
7

Czy istnieje sposób na animowanie przycisku w systemie Android, aby po kliknięciu zmieniło tło przycisku na naciśnięty obraz?Przycisk zmiany stanu wizualnego kliknięcia

Używam tylko właściwości background, aby wyświetlić obraz na przycisku formularza.

+3

Animacja w tym sensie wprowadza w błąd, ponieważ nie ma prawdziwej "animacji" per se, a jedynie odbicie zmiany stanu. (Mówię to, ponieważ próbuję animować przycisk i ten wątek w ogóle nie pomaga!) – styler1972

Odpowiedz

20

Użyj tego pliku XML: zapisz go w folderze do rysowania i ustaw jako tło do rysowania.

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

Tak, istnieje. Zaimplementuj onTouchListener. użyć zmiennej MotionEvent (powiedzmy event) w metodzie onTouch napisać to:

if (event.getAction() == MotionEvent.ACTION_DOWN){ 
    /*Code*/ 
} 
if (event.getAction() == MotionEvent.ACTION_UP){ 
    /*Code*/ 
} 
+0

Czy przeczytałeś pytanie ?! – thepoosh

+0

Powyższą metodę opublikowaną przez KKD można również wykorzystać thepoosh i działa dobrze .. –

5

dodać plik xml na swoim RES/odkształcalne nazwa folderu to przycisk_selector.xml umieścić również dwa losowania dla stanu wciśnięty, a drugi dla stanu niesparowanego lub normalnego. Na koniec dodaj dwa przyciski wyboru pliku xml i wszystko powinno działać! nie zapomnij ustawić @ drawable/bytton_selector.xml jako tła przycisku w pliku main.xml.

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

    <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/> 
     <item android:drawable="@drawable/btn_unpressed"/> 

    </selector> 
+0

to działa, ale chcę wiedzieć, dlaczego jest android: state_pressed = "false" nie jest potrzebne? Testowałem bez niego, nadal pracuję ... Czy wydajność może być lepsza niż sprawdzanie dwóch stanów? – lynndragon

Powiązane problemy