2013-08-26 7 views
8

Ho un drenaggio sinistro assegnato a un pulsante e uno sfondo disegnabile. Voglio fornire un selettore in modo che quando un utente preme/mette a fuoco/disabilita il pulsante, il suo aspetto cambia. L'immagine che sto usando per il drawable sinistro è una "x" rossa.E 'possibile cambiare il disegnabile a sinistra di un pulsante nel selettore xml?

Mi piacerebbe che questo si scambiasse con una "X" grigia mentre il pulsante è premuto o disattivato. È possibile utilizzare un selettore?

Ecco quello che ho provato (che lavora per l'immagine di confine/sfondo, ma non per il drawable sinistra (ovviamente).

<?xml version="1.0" encoding="utf-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_enabled="false" 
     android:drawable="@drawable/GrayBorder" 
     android:drawableLeft="@drawable/GrayRemove"/> 
    <item 
     android:state_pressed="true" 
     android:state_enabled="true" 
     android:drawable="@drawable/GrayBorder" 
     android:drawableLeft="@drawable/GrayRemove" /> 
    <item 
     android:state_focused="true" 
     android:state_enabled="true" 
     android:drawable="@drawable/GrayBorder" 
     android:drawableLeft="@drawable/GrayRemove" /> 
    <item 
     android:state_enabled="true" 
     android:drawable="@drawable/BlackBorder" 
     android:drawableLeft="@drawable/Remove"/> 
</selector> 
+0

@ theMothaShip creare un selettore separato e impostarlo come leftdrawable – Varun

+0

@Varun Mi sento sciocco che non ho pensato di farlo in primo luogo ... Grazie! – theMothaShip

+0

@Varun Ha funzionato come un fascino, presentare è una risposta e la contrassegnerò come accettata – theMothaShip

risposta

14

creare un selettore separato e provare a impostare che come la drawableLeft sul Button

+0

Puoi spiegarlo di più? Non sono sicuro di aver capito. – user2966445

+0

Nella domanda, OP ha un 'selettore' impostato come sfondo e aveva un'altra icona come' leftDrawable' sul 'Pulsante' che non rifletteva gli stati di selezione. La soluzione è non usare un'icona semplice come 'leftDrawable', ma piuttosto creare un' selector' drawable (StateListDrawable) e usarlo come 'leftDrawable'. Se vuoi saperne di più su 'StateListDrawable', segui questo link al documento ufficiale - https://developer.android.com/guide/topics/resources/drawable-resource.html#StateList – Varun

Problemi correlati