Animaciones multitouch
Publicado por Violeta (22 intervenciones) el 29/03/2020 11:25:35
Buenas.
Estoy intentando hacer una animación para una tarea, en la que se pide que sea multitouch y con bucle.
De momento tengo pintado el bitmap inicial y la idea es que se mueva con cada toque, ahí es donde me atasco, ya que al hacerlo mediante canvas no consigo encontrar ningún método que me lo permita.
Esto lo que hace es cada vez que toco aparece OTRO muñeco que se mueve y al levantar desaparece, y no es eso lo que se quiere.
Este es mi método onTouch:
Si alguien tuviese alguna idea o supiese donde puedo consultar, lo agradecería profundamente. Encuentro mucho sobre animaciones, pero nada con eventos multitouch.
Por cierto, estoy usando Android Studio.
Gracias por adelantado.
Estoy intentando hacer una animación para una tarea, en la que se pide que sea multitouch y con bucle.
De momento tengo pintado el bitmap inicial y la idea es que se mueva con cada toque, ahí es donde me atasco, ya que al hacerlo mediante canvas no consigo encontrar ningún método que me lo permita.
1
2
3
4
5
6
7
8
9
10
11
12
//Dibujar muñeco
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.mihero2);
canvas.drawBitmap(bmp, 50, 1500, null);
//Si ha ocurrido un toque en la pantalla
if (hayToque) {
synchronized (this) {
for (Toque t : toques) {
canvas.drawBitmap(bmp,bmpInicialx+x, 1500, null);
}
}
}
Esto lo que hace es cada vez que toco aparece OTRO muñeco que se mueve y al levantar desaparece, y no es eso lo que se quiere.
Este es mi método onTouch:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public boolean onTouch(View v, MotionEvent event) {
int index;
int x,y;
// Obtener el pointer asociado con la acción
index = MotionEventCompat.getActionIndex(event);
switch(event.getActionMasked()){
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_POINTER_DOWN:
hayToque=true;
x = (int) MotionEventCompat.getX(event, index);
y = (int) MotionEventCompat.getY(event, index);
synchronized(this) {
toques.add(index, new Toque(index, x, y));
}
Log.i(Game.class.getSimpleName(),"Pulsado dedo "+index+".");
break;
case MotionEvent.ACTION_POINTER_UP:
synchronized(this) {
toques.remove(index);
}
Log.i(Game.class.getSimpleName(),"Soltado dedo "+index+".");
break;
case MotionEvent.ACTION_UP:
synchronized(this) {
toques.remove(index);
}
Log.i(Game.class.getSimpleName(),"Soltado dedo "+index+".ultimo.");
hayToque=false;
break;
}
return true;
}
Si alguien tuviese alguna idea o supiese donde puedo consultar, lo agradecería profundamente. Encuentro mucho sobre animaciones, pero nada con eventos multitouch.
Por cierto, estoy usando Android Studio.
Gracias por adelantado.
Valora esta pregunta


0