2012-06-07 8 views
5

Problema: deseo cambiar el color de fondo de un botón después de presionarlo.android-change button color de fondo después de hacer clic en

Es un problema simple, pero he pasado mucho tiempo buscando esto en Google y parece que no puedo encontrar una solución. Todos se refieren al mismo XML que aparece a continuación.

Mi XML es el siguiente:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/black_button_pressed" android:state_focused="true" /> 
    <item android:drawable="@drawable/black_button_pressed" android:state_pressed="true" /> 
    <item android:drawable="@drawable/black_button_normal"/> 
</selector> 

Por lo tanto, cuando una persona pasa por encima de un botón, aparecerá en gris. Cuando una persona hace clic en un botón, el fondo del botón debe aparecer atenuado después del clic, pero parece que no se puede atenuar. Vuelve al estado normal después de la prensa.

¿Tienen alguna sugerencia y/o consejos para ayudarme?

+0

Se supone que debe volver a su estado normal después de haber hecho clic. Si desea que permanezca permanentemente en el estado cliqueado, deberá usar la respuesta de Russ a continuación. Sin embargo, deberá volver a establecer el recurso de fondo en ese archivo XML si desea que el usuario pueda volver a hacer clic en él con la misma animación. – Guardanis

Respuesta

2

En Android, el estado de la IU no persistirá una vez que se complete el evento. Por ejemplo, puede manejar el evento de clic de botón y resaltar el botón, pero vuelve a su estado normal una vez que se dispara el evento Up. Entonces, la única opción, hasta donde yo sé, es cambiar el fondo del botón configurando un recurso dibujable diferente.

btn.setBackgroundResource (R.drawable.btn_selected_blue);

0

Esto funciona (en el controlador onClick):

button.setBackgroundResource(R.drawable.button_selected); 

Puede haber una manera más agradable sin embargo.

+0

Lo he intentado ya no funciona. – Unknown

Cuestiones relacionadas