Traducido del Foro de Ingles
Posteado por Erel
Uso de la biblioteca Agraham los gestos que pueden controlar los eventos multitáctiles.
Este es un ejemplo de una aplicación de dibujo simple que soporta multitouch:
Como se puede ver en la imagen anterior, cada dedo dibuja con un color diferente y también muestra el identificador y la posición actual de cada contacto.
Con el fin de apoyar a un objeto de gestos multitouch se utiliza para añadir un oyente a un punto de vista específico.
El oyente es el responsable de provocar un evento con cada movimiento o cambio en el estado multitouch.
Dentro de este evento que estamos manejando el gesto. Cada contacto recibe una Identificación del puntero durante un gesto. La Identificación del puntero se asigna cuando un dedo toca la pantalla y se libera cuando el mismo dedo sale de la pantalla.
Creo que es útil para mantener un mapa con los identificadores de puntero como las claves y los datos de los extras que desee asignar a cada contacto como valores.
En nuestro ejemplo, almacenar el color y la posición anterior como el valor.
Mantener el mapa se hace con el código siguiente:
El tipo de punto se declara en Sub Globales:
El resultado es que TouchMap contiene información acerca de los toques activos.
Ahora todo lo que queda por hacer es repetir los valores TouchMap y conectar las coordenadas anteriores con los nuevos y actualizar las coordenadas anterior.
Las nuevas coordenadas se obtienen llamando g.GetX / Y con el identificador del puntero.
p.prevX y p.prevY será igual a 0 cuando el contacto se inicia. En este caso no sacamos nada.
http://www.b4x.com/forum/attachments/basic4android-getting-started-tutorials/8127d1311600714-android-multitouch-tutorial-multitouchexample.zip
Un Saludo
Posteado por Erel
Uso de la biblioteca Agraham los gestos que pueden controlar los eventos multitáctiles.
Este es un ejemplo de una aplicación de dibujo simple que soporta multitouch:
Como se puede ver en la imagen anterior, cada dedo dibuja con un color diferente y también muestra el identificador y la posición actual de cada contacto.
Con el fin de apoyar a un objeto de gestos multitouch se utiliza para añadir un oyente a un punto de vista específico.
El oyente es el responsable de provocar un evento con cada movimiento o cambio en el estado multitouch.
Dentro de este evento que estamos manejando el gesto. Cada contacto recibe una Identificación del puntero durante un gesto. La Identificación del puntero se asigna cuando un dedo toca la pantalla y se libera cuando el mismo dedo sale de la pantalla.
Creo que es útil para mantener un mapa con los identificadores de puntero como las claves y los datos de los extras que desee asignar a cada contacto como valores.
En nuestro ejemplo, almacenar el color y la posición anterior como el valor.
Mantener el mapa se hace con el código siguiente:
B4X:
Sub GesturesTouch(View As Object, PointerID As Int, Action As Int, X As Float, Y As Float) As Boolean
Dim p As Point
Select Action
Case g.ACTION_DOWN, g.ACTION_POINTER_DOWN
'New Point is assigned to the new touch
p.Id = PointerID
p.Color = Colors.RGB(Rnd(0, 255), Rnd(0, 255), Rnd(0, 255))
TouchMap.Put(PointerID, p)
Case g.ACTION_POINTER_UP
TouchMap.Remove(PointerId)
Case g.ACTION_UP
TouchMap.Clear
End Select
...
B4X:
Type Point(Id As Int, prevX As Int, prevY As Int, Color As Int)
Ahora todo lo que queda por hacer es repetir los valores TouchMap y conectar las coordenadas anteriores con los nuevos y actualizar las coordenadas anterior.
Las nuevas coordenadas se obtienen llamando g.GetX / Y con el identificador del puntero.
B4X:
Dim px, py As Int
For i = 0 To TouchMap.Size - 1
p = TouchMap.GetValueAt(i)
px = g.GetX(p.id) 'Get the current coordinates of this touch
py = g.GetY(p.id)
Dim s As String
s = p.Id & ": " & px & " x " & py
Canvas.DrawText(s, 10dip, 20dip + i * RowHeight, Typeface.DEFAULT, TextSize, p.Color, "LEFT")
If p.prevX > 0 AND p.prevY > 0 Then
Canvas.DrawLine(p.prevX, p.prevY, px, py, p.Color, 5dip)
End If
p.prevX = px
p.prevY = py
Next
bgd.Invalidate
http://www.b4x.com/forum/attachments/basic4android-getting-started-tutorials/8127d1311600714-android-multitouch-tutorial-multitouchexample.zip
Un Saludo