Comment puis-je changer les images sur un ImageButton dans Android lorsque vous utilisez un OnTouchListener?

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

  •  26-09-2019
  •  | 
  •  

Question

Je le code suivant qui crée un ImageButton et joue un son lorsque vous cliquez dessus:

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;
    }
});

Le problème est que je veux l'image sur la ImageButton changer lorsque vous appuyez dessus. Le OnTouchListener semble être primordial au toucher et ne pas laisser les images de changer. Dès que je retire la OnTouchListener, les swaps ImageButton à une autre image lorsqu'il est pressé. Toutes les idées sur la façon dont je peux avoir les images sur le changement ImageButton tout en utilisant la OnTouchListener? Merci beaucoup!

Était-ce utile?

La solution

Je pense que la solution est simple: retirer le return true du ontouchlistener. Depuis que bloque toutes les autres opérations qui réagissent au toucher et entrée. Faites-return false aussi.

De cette façon, il permettra à d'autres actions à répondre aussi au toucher.

Autres conseils

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;
    }
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top