Soy bastante nuevo en la programación de Android y Java (aunque tengo cierta experiencia con C#, eso ayuda).Android: parece que no puede usar MotionEvent.ACTION_MOVE correctamente
En este momento estoy jugando con un par de cosas para saber cómo funciona todo. Realicé una actividad que implementa en TouchListener. He anulado onTouch y tienen un interruptor en event.getAction():
public boolean onTouch(View v, MotionEvent event)
{
float x;
float y;
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN: // gets called
{
x = event.getX();
y = event.getY();
circle c = new circle(this, x, y, 10, 0xFFFFFF);
_main.addView(c, tapCount++);
break;
}
case MotionEvent.ACTION_MOVE: // doesnt seem to do anything
{
x = event.getX();
y = event.getY();
circle c = new circle(this, x, y, 10, 0xFFFFFF);
_main.addView(c, tapCount++);
break;
}
}
return false;
}
Donde "círculo" es una clase que dibuja un círculo.
Lo que esperaba ver era un rastro de círculos mientras arrastraba mi dedo sobre la pantalla. En lugar de eso, el círculo solo se dibuja cuando empiezo a tocar.
He comparado mi código con ejemplos (por ejemplo: este blogpost de Google: http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html) y no puedo encontrar mi error.
EDIT: Enlace a la clase completa: http://pastebin.com/tVDQjQhu
EDIT: fijo. Uno tiene que devolver verdadero en la función onTouch(). d'oh!
1 ¿Tiene usted alguna idea de por qué esto es cómo funciona? ¿Podría señalarnos en la dirección en que está documentado esto, un lugar donde habría una explicación? ¡Gracias! – Mzn
Cuando sobrescribe en TouchEvent el booleano, su booleano de retorno indica si el evento se consumió o no. – stealthcopter