cómo cambiar la imagen de fondo del botón cuando se hace clic / se enfoca?

Quiero cambiar la imagen de fondo de un botón cuando hago clic o me enfoco.

Este es mi código:

Button tiny = (Button)findViewById(R.id.tiny); tiny.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Button tiny = (Button)findViewById(R.id.tiny); tiny.setBackgroundResource(R.drawable.a9p_09_11_00754); TextView txt = (TextView)findViewById(R.id.txt); txt.setText("!---- On click ----!"); } }); 

Es este código correcto? ¿Llama un botón en su evento?

Puede implementar en un archivo xml para esto de la siguiente manera:

     //means normal  

ahora guarde este archivo xml en la carpeta dibujable y asígnele el nombre abc.xml y configúrelo de la siguiente manera

  Button tiny = (Button)findViewById(R.id.tiny); tiny.setBackgroundResource(R.drawable.abc); 

Espero que te ayude. 🙂

Es muy fácil de implementar. Para eso, necesita crear un archivo xml (archivo selector) y ponerlo en una carpeta dibujable en res. Después de eso, configure el archivo xml en el fondo del botón en su archivo de diseño.

button_background_selector.xml

        

Ahora establece el archivo de arriba en el fondo del botón.

  

Lo siento, esto está mal.

Para cambiar el color / la imagen de fondo según el evento en particular (enfoque, prensa, normal), debe definir un archivo selector de botón e implementarlo como fondo para el botón.

Por ejemplo: button_selector.xml (defina este archivo dentro de la carpeta dibujable)

           

Y aplicarlo como:

   

use este código para crear un archivo xml en el nombre de la carpeta dibujable: botón

      

y en el archivo de botón xml

  android:background="@drawable/button" 

Para cambiar el fondo del botón podemos seguir 2 métodos

  1. En el botón OnClick, simplemente agrega este código:

      public void onClick(View v) { if(v == buttonName) { buttonName.setBackgroundDrawable (getResources().getDrawable(R.drawable.imageName_selected)); } } 

    2. Cree button_background.xml en la carpeta dibujable. (Usando xml)

    res -> dibujable -> button_background.xml

              

    Ahora configure el archivo anterior en el archivo de fondo del botón.

       (or) Button tiny = (Button)findViewById(R.id.tiny); tiny.setBackgroundResource(R.drawable.abc); 

    El segundo método es mejor para configurar el botón fd de fondo

Solo necesita establecer el fondo y proporcionar el archivo previous.xml en el fondo del botón en su archivo de diseño.

  

y done.Edit Following es el archivo previous.xml en el directorio dibujable