Spanish TouchImageView / ZoomImageView

Espinosa4

Active Member
Licensed User
Longtime User
Hola a todos,

Estoy intentando hacer que cuando hagas doble tap en la imagen que muestra haga zoom pero no consigo hacerlo.
¿Me podríais echar un cable por favor?

Uso TouchImageView pero podría usar ZoomImageView (Hago zoom pero al tocar se hace pequeño o donde se quedó).
También voy en vistas a poder usarlo en iOS

Gracias de antemano,
Un saludo
 

josejad

Expert
Licensed User
Longtime User
Hola:

No lo he hecho nunca, pero has probado esta librería?


Tiene estas propiedades:
  • DoubleTapToZoom As Boolean
    Gets double tap to zoom state.
  • DoubleTapToZoomScaleFactor As Float
    Gets the double tap to zoom scale factor.

Eso sí, es sólo para B4A
 

Espinosa4

Active Member
Licensed User
Longtime User
Hola:

No lo he hecho nunca, pero has probado esta librería?


Tiene estas propiedades:
  • DoubleTapToZoom As Boolean
    Gets double tap to zoom state.
  • DoubleTapToZoomScaleFactor As Float
    Gets the double tap to zoom scale factor.

Eso sí, es sólo para B4A
Hola @josejad

No, no, no conocía esta librería. La probaré y a ver qué tal!

Gracias como siempre por tu ayuda.
Un saludo
 

josejad

Expert
Licensed User
Longtime User
La de TouchImageView sí parece que es multiplataforma, pero o tendrías que pedirle a Erel que la modifique para añadir esa característica, o tendrías que descomprimir la librería y ver si lo puedes añadir tú
 

TILogistic

Expert
Licensed User
Longtime User
Ajuste los click o double click.
Calcula la diferencia de tiempo entre el click y el último click para saber si es double click o click
B4X:
Private Sub pnl_Touch (Action As Int, X1 As Float, Y1 As Float)
    If Action = pnl.TOUCH_ACTION_DOWN Or TouchDown = False Then
        StartLeft = pnlBackground.Left
        StartTop = pnlBackground.Top
        StartX = X1
        StartY = Y1
        TouchDown = True
        If xui.IsB4A = False Then ClickStart = DateTime.Now
    Else If Action = pnl.TOUCH_ACTION_MOVE And TouchDown Then
        pnlBackground.Left = Min(0.5 * mBase.Width, StartLeft + 1.2 * (X1 - StartX))
        pnlBackground.Left = Max(-(pnlBackground.Width - 0.5 * mBase.Width), pnlBackground.Left)
        pnlBackground.Top = Min(0.5 * mBase.Height, StartTop + 1.2 * (Y1 - StartY))
        pnlBackground.Top = Max(-(pnlBackground.Height - 0.5 * mBase.Height), pnlBackground.Top)
        SetImageViewLayout
    Else if Action = pnl.TOUCH_ACTION_UP Then
        TouchDown = False
        If DateTime.Now - ClickStart < ClickThreshold And DisableClickEvent = False Then
            If xui.SubExists(mCallBack, mEventName & "_Click", 0) Then
                CallSub(mCallBack, mEventName & "_Click")
                ZoomChanged(StartX, StartY, 1.1)
            End If
        End If
    Else
        'Log("touch cancelled")
    End If
End Sub
1.gif
 

Attachments

  • ZoomIVExample.zip
    356.6 KB · Views: 83
Last edited:
Top