Comment puis-je changer les images sur un ImageButton dans Android lorsque vous utilisez un OnTouchListener?
-
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!
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;
}
});