Horizontal scrolling only

ciginfo

Well-Known Member
Licensed User
Longtime User
Bonjour,
Dans mon appli, j'ai une image (une sorte de bannière bien plus large que haute et naturellement dépasse la largeur de l'écran) que je dois faire défiler horizontalement uniquement.
j'"ai essayé d'utiliser l'exemple "scrollImage" qui permet de faire défiler une image horizontalement et verticalement. Comment modifier le code pour un défilement horizontal strict?

Sub Activity_Touch(Action As Int, X As Float, Y As Float)
Dim x2, y2 As Float

Select Action
Case Activity.ACTION_DOWN
x0 = pnlImage.Left ' saves the current Left value
y0 = pnlImage.Top ' saves the current Top value
x1 = X ' saves the current X value
Y1 = Y ' saves the current Y value
Case Activity.ACTION_MOVE
x2 = x0 + X - x1 ' calculates the new Left value
x2 = Min(x2, 0) ' checks the heighest value
x2 = Max(x2, -pnlImage.Width + Activity.Width) ' checks the lowes value
pnlImage.Left = x2 ' sets the Left new value

y2 = y0 + Y - y1 ' calculates the new Top value
y2 = Min(y2, 0) ' checks the heighest value
y2 = Max(y2, -pnlImage.Height + Activity.Height) ' checks the lowes value
pnlImage.Top = y2 ' sets the Left new value
End Select
End Sub


Merci bien
 

klaus

Expert
Licensed User
Longtime User
Avec le code ci-dessous:
B4X:
Sub Activity_Touch(Action As Int, X As Float, Y As Float)
  Dim x2 As Float
 
  Select Action
  Case Activity.ACTION_DOWN
    x0 = pnlImage.Left ' saves the current Left value
    x1 = X ' saves the current X value
  Case Activity.ACTION_MOVE
    x2 = x0 + X - x1 ' calculates the new Left value
    x2 = Min(x2, 0) ' checks the heighest value
    x2 = Max(x2, -pnlImage.Width + Activity.Width) ' checks the lowes value
    pnlImage.Left = x2 ' sets the Left new value
  End Select
End Sub

x0 et x1 doivent être déclarées sour Sub Globals.

Meilleures salutations.
 
Upvote 0
Top