2011-09-07 24 views
5

Intento cambiar el fondo de los botones si se presionan. Construyo un Selector como la respuesta sugerida aquí: Standard Android Button with a different colorSelector de fondo del botón

finalmente quiero poner GradientDrawables adentro, pero para depuración solo quiero establecer un color, para ver si está funcionando. Aquí es mi 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> 

desafortunadamente esto no funciona. Configuré el Selector como Fondo desde mi Botón, y solo los veo en color rojo. ¿Qué estoy haciendo mal (el objetivo build 2.1)

Respuesta

19

poner esto al final

elemento android: dibujable = "@ colores/rojo"

me refiero como la tercera opción, que va a funcionar. android comprueba las condiciones xml desde el principio, la primera etiqueta no tiene ninguna condición, por lo que siempre se seleccionará en rojo, por lo que debe poner primero las condiciones y luego la predeterminada.

+0

hmm esto no funciona, porque ahora son de color blanco todo el tiempo –

+0

es su botón debajo de enfoque? –

+0

No lo creo. Tengo dos botones, y ambos son blancos sin cambio al hacer clic en –

0

aquí está el código que uso, y funciona muy bien.

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

Aquí, he utilizado dos imágenes que hice usando photoshop como fondo

la primera se button_clicked y el segundo es botón

copiarlo y cambio de uso de sus propios recursos.

esperanza que podía ayudar :)

Cuestiones relacionadas