Wie kann ich die Bilder auf einem ImageButton in Android ändern, wenn ich einen OnTouchListener verwende?

StackOverflow https://stackoverflow.com/questions/2617969

  •  26-09-2019
  •  | 
  •  

Frage

Ich habe den folgenden Code, der einen ImageButton erstellt und beim Klicken einen Ton spielt:

ImageButton SoundButton1 = (ImageButton)findViewById(R.id.sound1);
SoundButton1.setImageResource(R.drawable.my_button);

SoundButton1.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN ) {
            mSoundManager.playSound(1);
            return true;
        }

        return false;
    }
});

Das Problem ist, dass ich möchte, dass das Bild auf dem ImageButton sich ändert, wenn Sie es drücken. Der OnTouchListener scheint die Berührung zu überschreiben und zuzulassen, dass sich die Bilder nicht ändern. Sobald ich den OnTouchListener entferne, wechselt das ImageButton beim Drücken auf ein anderes Bild. Irgendwelche Ideen, wie ich die Bilder auf dem ImageButton ändern kann, während ich noch den OnTouchListener benutze? Vielen Dank!

War es hilfreich?

Lösung

Ich denke, die Lösung ist einfach: Entfernen Sie die return true vom OnTouchListener. Da dies alle weiteren Vorgänge blockiert, die auf Berührung und Eingabe reagieren. Mach es return false zu.

Auf diese Weise können andere Aktionen auch auf die Berührung reagieren.

Andere Tipps

SoundButton1.setOnTouchListener(new OnTouchListener() {

    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN ) {
            mSoundManager.playSound(1);
            btnmode.setImageResource(R.drawable.modeitempressed);

        }
         elseif (event.getAction() == MotionEvent.ACTION_UP ) {
            btnmode.setImageResource(R.drawable.modeitemnormal);

        }

        return false;
    }
});
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top