2014-11-13 9 views
5

Ora ho un pulsante e selettore di utilizzo come sfondo, il selettore di avere pressed e focus Stato:Come rendere l'effetto dissolvenza quando lo stato dello sfondo della vista è cambiato su Android?

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:state_pressed="true"   
     android:drawable="@color/item_gray" /> <!-- pressed -->  
    <item android:state_focused="true"   
     android:drawable="@color/item_gray" /> <!-- focused -->  
</selector> 

E il codice del pulsante:

<Button 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/button_selector" 
    android:text="@string/hello_world" /> 

E 'semplice da far cambiare il pulsante suo sfondo quando il suo stato è cambiato. E ora ho bisogno che lo sfondo cambi più bello. Quindi voglio aggiungere effetti di dissolvenza tra due cambiamenti dello stato di sfondo.

Ho cercato il google e molti documenti e ho letto il codice sorgente di Button, ho trovato che posso farlo se ho Override the setPressed function.

Posso sapere che lo stato sta cambiando in setPressed e disegnare una bitmap aggiuntiva che riprodurrà l'animazione in dissolvenza. Ma penso che questo non sia un buon ideale. Quindi sono venuto qui per chiedere se c'è un modo migliore per raggiungerlo?

risposta

11

cercare di definire la durata di fade in selettore drawable

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
      android:enterFadeDuration="150" android:exitFadeDuration="150"> 
+0

impressionante! Grazie! – zzy

Problemi correlati