web-dev-qa-db-fra.com

Faire un Android bouton changer l'arrière-plan en cliquant sur XML

Existe-t-il un moyen de spécifier une image/couleur d'arrière-plan alternative pour un bouton dans le fichier XML qui va être appliqué onClick, ou dois-je faire une Button.setBackground() dans le onClickListener?

33
nbarraille

Pour changer d'image à l'aide de code

public void onClick(View v) {
   if(v == ButtonName) {
     ButtonName.setImageResource(R.drawable.ImageName);
   }
}

Ou, en utilisant un fichier XML:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
  <item Android:state_pressed="true"
   Android:drawable="@drawable/login_selected" /> <!-- pressed -->
  <item Android:state_focused="true"
   Android:drawable="@drawable/login_mouse_over" /> <!-- focused -->
  <item Android:drawable="@drawable/login" /> <!-- default -->
</selector>

Dans OnClick, ajoutez simplement ce code:

ButtonName.setBackgroundDrawable(getResources().getDrawable(R.drawable.ImageName));
102
David

Dans la dernière version du SDK, vous utiliseriez la méthode setBackgroundResource.

public void onClick(View v) {
   if(v == ButtonName) {
     ButtonName.setBackgroundResource(R.drawable.ImageResource);
   }
}
7
cdrev
public void methodOnClick(View view){

Button.setBackgroundResource(R.drawable.nameImage);

}

je recommande d'utiliser le bouton à l'intérieur de LinearLayout pour ajuster la taille de Linear.

2
Alex Zaraos

Essayer:

public void onclick(View v){
            ImageView activity= (ImageView) findViewById(R.id.imageview1);
        button1.setImageResource(R.drawable.buttonpressed);}
1
Giant