2016-03-31 10 views
0

Wie kann ich ein Touch-Feedback für ImageButtons implementieren? Ich möchte, dass die Bildschaltfläche das Bild ändert, wenn die Schaltfläche berührt wird. Ich habe bereits gesucht, aber nachdem ich einige Dinge versucht habe, die nicht funktioniert haben, bin ich ein bisschen verzweifelt. Ist ein Selektor das Richtige für dieses Problem und wie funktioniert das?ImageButton Touch-Feedback

Mein aktueller Versuch ist es, eine neue .xml-Datei im Zeichnungsordner zu erstellen. Dort würde ich einen Wähler setzen, das ist mein aktueller Code für die XML-Datei:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"android:exitFadeDuration="@android:integer/config_mediumAnimTime"> 
<item 
    android:state_pressed="true" 
    android:drawable="@drawable/testbuttonimageselected" /> 
<item 
    android:drawable="@drawable/testbuttonimage" /> 
</selector> 

Und das ist mein aktueller Code für die .java-Datei:

btnTest = (ImageButton) findViewById(R.id.btnTest); 
btnTest.setOnClickListener(new View.OnClickListener() { 

    public void onClick(View button) { 
     //Set the button's appearance 
     button.setSelected(!button.isSelected()); 

     if (button.isSelected()) { 
      //Handle selected state change 
     } else { 
      //Handle de-select state change 
     } 
    } 
}); 

Antwort

0

Sie können dies leicht tun, indem Verwenden einer Zustandsliste und Zuweisen eines anderen Bildes zu jedem Zustand: https://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

+0

Ich denke, das ist genau das, was ich gerade versuche, aber es funktioniert nicht. Ich habe den Code zu meiner Frage hinzugefügt. Vielleicht können Sie einen Fehler erkennen? – MikeFry

+0

Sie müssen StateListDrawable als Zeichen für Ihr ImageButton festlegen. Sie müssen nicht selbst mit den Staaten umgehen. – Vaiden