studio programacion para libros gratis ediciĆ³n desarrollo desarrollar aprende aplicaciones android android-event

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