2011-09-07 16 views
5

Provo a cambiare lo sfondo dei pulsanti se vengono premuti. Costruisco un selettore come la risposta suggerita qui: Standard Android Button with a different colorPulsante di selezione sfondo

infine voglio mettere GradientDrawables all'interno, ma a scopo di debug voglio solo impostare un colore, per vedere che funziona. Ecco il mio selettore

<?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> 

purtroppo questo non funziona. Ho impostato il selettore come sfondo dal mio pulsante e li vedo solo in rosso. Che cosa sto facendo di sbagliato (Build target 2.1)

risposta

19

mettere questo alla fine

voce android: drawable = "@ colore/rosso"

voglio dire come la terza opzione, che funzionerà. android controlla le condizioni xml dall'inizio, il primo tag non ha alcuna condizione, quindi selezionerà sempre il rosso, quindi prima si sono impostate le condizioni e poi quella predefinita.

+0

hmm questo non funziona, perché ora sono bianchi per tutto il tempo –

+0

è il vostro pulsante sotto attenzione? –

+0

Io non la penso così. Ho due pulsanti e sono entrambi bianchi senza modifiche sul clic. –

0

ecco il codice che uso e funziona davvero bene.

<?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> 

Qui uso due immagini che ho fatto utilizzando Photoshop come sfondo

il primo è button_clicked e il secondo è pulsante

copiarlo e cambiamento utilizzare le risorse proprie.

speranza ho potuto fare :)

Problemi correlati