Spanish Panel Touch (pregunta) [SOLUCIONADO]

ebqlabs

Active Member
Licensed User
Hola,

tengo una función creada en "Sub Panel5_Touch (Action As Int, X As Float, Y As Float) ", en el
desde una tablet obtengo las posiciones "x" e "y" y las almacenos en la BD.

Pero estas coordenadas
x: 58
y:128

que genere de una tablet de 7 pulgas, como le puedo re-utilizar para otros dispositivos ? Por que esas posiciones pinto una marca, pero cuando la cargo de otros dispositivos y como no son de la misma resolución, la marca queda en otro lado.

La estoy cargando de estas manera, desde la BD:

B4X:
Panel5.AddView(ImageView2,m.Get("app_pos_xxx"),m.Get("app_pos_yyy"),5%x,4%y)

Favor su ayuda. y atento a comentarios. Gracias.
 

JordiCP

Expert
Licensed User
Longtime User
Lo suyo sería que guardes en la BBDD las posiciones relativas X e Y respecto al ancho y alto del panel, ya que las dimensiones del mismo serán diferentes en cada dispositivo.

X: 58/Panel5.Width
Y: 128/Panel5.Height '<-- X e Y tendrán decimales, a tener en cuenta para la BBDD.
(en esta caso, el Width y Height de tu tablet)

Y en los otros dispositivos, lo cargas como
B4X:
X2=Panel5.Width*m.Get("app_pos_xxx")
Y2=Panel5.Height*m.Get("app_pos_yyy")
Panel5.AddView(ImageView2, X2, Y2, 5%x, 4%y)
 

ebqlabs

Active Member
Licensed User
Entonces, me dices antes que grabe las coordenas modifique me codigo ?


B4X:
Sub Panel5_Touch (Action As Int, X As Float, Y As Float)   
    Select Action
        Case Activity.ACTION_DOWN     
            Timer1.Enabled=False
            Timer1.interval=1000  '5 segundos
              Timer1.Enabled=True
            j = X
            k = Y                   
        Case Activity.ACTION_UP
            Timer1.enabled=False
    End Select
End Sub

en el codigo
j = X
k = Y

sería:

j = X/Panel5.Width
k = Y/Panel5.Height
 

JordiCP

Expert
Licensed User
Longtime User
Sí, ya que lo que importa es la posición relativa que tu has tocado en el panel, y no la absoluta.
Por ejemplo, si tocas en el centro del panel, j y k valdrán 0.5
('j' y 'k' deben ser Float, y guardarse como tales en la BBDD)
 

ebqlabs

Active Member
Licensed User
Sí, ya que lo que importa es la posición relativa que tu has tocado en el panel, y no la absoluta.
Por ejemplo, si tocas en el centro del panel, j y k valdrán 0.5
('j' y 'k' deben ser Float, y guardarse como tales en la BBDD)

Quedo perfecto, gracias por la ayuda.

Saludos.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…