2010-11-08 4 views
29

Gibt es eine Möglichkeit, ein alternatives Hintergrundbild/Farbe für eine Schaltfläche in der XML-Datei, die angewendet werden soll onClick, oder muss ich eine Button.setBackground() in der tun onClickListener?Machen Sie eine Android-Taste ändern Hintergrund beim Klicken durch XML

+0

Weitere Informationen und Hilfe zur Implementierung finden Sie in den [android docs] (http://developer.android.com/resources/tutorials/views/hello-formstuff.html). –

Antwort

94

Um das Bild von

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

Oder mit Code zu ändern, eine XML-Datei mit:

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

In OnClick, nur diesen Code hinzu:

ButtonName.setBackgroundDrawable(getResources().getDrawable(R.drawable.ImageName)); 
+0

Danke, genau das, was ich gesucht habe (das Element Zustand Sache ...) – nbarraille

+0

@ David, danke für diese post.i haben paar Bild Schaltflächen erfordern diese Funktion (Bild auf gedrückt ändern), was Änderungen in Selector & OnClick benötigt werden für alle? Kannst du mich führen? – swiftBoy

+0

Wo zeigen Sie genau auf diese XML-Datei im zweiten Ansatz? – Paul

6

In der neuesten Version des SDK würden Sie die Methode setBackgroundResource verwenden.

public void onClick(View v) { 
    if(v == ButtonName) { 
    ButtonName.setBackgroundResource(R.drawable.ImageResource); 
    } 
} 
1

Versuchen:

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

Button.setBackgroundResource(R.drawable.nameImage); 

} 

i Verwendung Taste innerhalb Linearlayout empfehlen Größe von Linear einzustellen.

Verwandte Themen