Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo puedo cambiar las imágenes en un ImageButton en Android cuando uso un OnTouchListener?

Tengo el código siguiente que crea un ImageButton y juega un sonido cuando chascado:

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

El problema es que quiero que la imagen en el ImageButton cambie al presionarlo. El OnTouchListener parece estar sobreescribiendo el tacto y no permitiendo que las imágenes cambien. Tan pronto como quito el OnTouchListener, el ImageButton cambia a una imagen diferente cuando se presiona. ¿Alguna idea sobre cómo puedo cambiar las imágenes en el ImageButton mientras todavía uso el OnTouchListener? ¡Muchas gracias!

  • Android - los estados de la superposición automática táctil / resaltado del estado de la imagen
  • Android: cómo configurar la altura / anchura de la imagen src de un ImageButton?
  • Cómo cambiar la imagen del ImageButton cuando se presiona y se libera?
  • ¿Cómo mostrar el texto en un ImageButton?
  • Desactivar un ImageButton?
  • Deshabilitar un ImageButton
  • ImageButton en Android con fondo transparente
  • Android resalta un botón de imagen cuando se hace clic
  • 2 Solutions collect form web for “¿Cómo puedo cambiar las imágenes en un ImageButton en Android cuando uso un OnTouchListener?”

    Creo que la solución es simple: eliminar el return true del ontouchlistener. Puesto que bloquea todas las operaciones adicionales que responden al tacto ya la entrada. Hacer que return false también.

    De esta manera permitirá que otras acciones también respondan al tacto.

     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; } }); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.