android - programacion - onTouchEvent se ejecuta dos veces
programacion android pdf 2018 (2)
En la instrucción switch, devuelva false para todos los eventos que no necesite.
¿Puede alguien explicarme por qué se ejecuta onTouchEvent
dos veces y cómo puedo configurarlo para que se ejecute solo una vez? No pude encontrar una explicación. Gracias.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
_iv = new ImageView(this);
_map = BitmapFactory.decodeResource(getResources(), R.drawable.image);
_iv.setImageBitmap(_map);
_iv.invalidate();
setContentView(_iv);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
double X = event.getX();
double Y = event.getY();
Toast.makeText(this, "X: " + X + " Y: " + Y, Toast.LENGTH_SHORT).show();
return super.onTouchEvent(event);
}
Se ejecuta para cada evento. En este caso, sería para el evento ACTION_DOWN
y ACTION_UP
. También se ejecutará para el evento ACTION_MOVE
muchas, muchas veces.
Para que solo se ejecute en un evento, haga algo como esto:
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
** CODE **
break;
case MotionEvent.ACTION_MOVE:
** CODE **
break;
case MotionEvent.ACTION_UP:
** CODE **
break;
}