calculateCentroidSize
Function
Common
fun PointerEvent.calculateCentroidSize(useCurrent: Boolean = true): Float
Returns the average distance from the centroid for all pointers that are currently and were
previously down. If no pointers are down, 0 is returned. If useCurrent is true, the size of
the PointerInputChange.position is returned and if false, the size of
PointerInputChange.previousPosition is returned. Only pointers that are down in both the
previous and current state are used to calculate the centroid size.
Example Usage:
Code Examples
CalculateCentroidSize
@Composable
fun CalculateCentroidSize() {
var centroidSize by remember { mutableStateOf(0f) }
var position by remember { mutableStateOf(Offset.Zero) }
Box(
Modifier.drawBehind {
// Draw a circle where the gesture is
drawCircle(Color.Blue, centroidSize, center = position)
}
.pointerInput(Unit) {
awaitEachGesture {
awaitFirstDown().also { position = it.position }
do {
val event = awaitPointerEvent()
val size = event.calculateCentroidSize()
if (size != 0f) {
centroidSize = event.calculateCentroidSize()
}
val centroid = event.calculateCentroid()
if (centroid != Offset.Unspecified) {
position = centroid
}
} while (event.changes.any { it.pressed })
}
}
.fillMaxSize()
)
}
