【发布时间】:2021-09-30 05:28:05
【问题描述】:
我有一个可组合的图像,我希望用户能够放大图像的一部分。 例如,如果捏在图像的左下角并放大到左下角而不是图像的中心。 并且当放大时,如果用一根手指就可以在图像周围平移。
在我当前的代码中,我有放大和缩小逻辑,但无论图像在哪里被挤压,它都默认位于图像的中心并且放大时图像没有平移逻辑。
Image(
painter = painterResource(id = R.drawable.sample_image),
contentDescription = "some description here",
modifier = Modifier
.graphicsLayer(
scaleX = scale.value,
scaleY = scale.value
)
.pointerInput(Unit) {
detectTransformGestures { _, _, zoom, _ ->
scale.value = when {
scale.value < 0.5f -> 0.5f
scale.value > 3f -> 3f
else -> scale.value * zoom
}
}
}
)
所以我想实现两件事:
- 能够在实际捏合的位置(不是图像的中心)进行缩放
- 放大时,可以平移图像
我已尝试从其他堆栈溢出答案中实施多种解决方案,但它们似乎不起作用。
【问题讨论】:
-
随便用一个库
标签: android android-jetpack-compose android-jetpack-compose-scaffold