'Detect when user released fingers from screen after zooming
How can I detect when user stop zooming photo(when he/she released fingers from the screen) and set the initial state of zoomed photo
var scale by remember { mutableStateOf(1f) }
var rotation by remember { mutableStateOf(0f) }
var offset by remember { mutableStateOf(Offset.Zero) }
val state = rememberTransformableState { zoomChange, offsetChange, rotationChange ->
scale *= zoomChange
rotation += rotationChange
offset += offsetChange
}
Image(
painter = painter,
modifier = Modifier
.pointerInput(Unit) {
detectDragGestures { change, dragAmount ->
if (change.pressed) {
scale = 1f
rotation = 0f
offset = Offset.Zero
}
}
}
.graphicsLayer(
scaleX = scale,
scaleY = scale
)
.transformable(state = state)
.padding(vertical = 100.dp)
.fillMaxSize(),
contentScale = ContentScale.Fit,
contentDescription = ""
)
Solution 1:[1]
You can use onDragEnd parameter:
detectDragGestures(
onDrag = { change, dragAmount ->
if (change.pressed) {
scale = 1f
rotation = 0f
offset = Offset.Zero
}
},
onDragEnd = {
},
)
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Pylyp Dukhov |
