Я собираюсь создать масштабируемое изображение внутри рамки, как на первом снимке экрана. Но когда я увеличиваю изображение, оно выходит из коробки. Есть ли способ увеличить изображение, но сохранить размер? Без view
или fragment
только box
кажется недостаточно. Я ожидаю, что изображение станет больше, но все еще останется внутри красного прямоугольника, но я получил второй снимок экрана после увеличения.
Благодаря nglauber и Amirhosein я получил окончательное решение с одновременным использованием функций масштабирования и перетаскивания внутри поля (фиксированная область) со следующим кодом в качестве нового снимка экрана, как показано ниже.
val imageBitmap = imageResource(id = R.drawable.android)
Image(
modifier = Modifier
.preferredSize(400.dp, 300.dp)
.clip(RectangleShape)
.zoomable(onZoomDelta = { scale.value *= it })
.rawDragGestureFilter(
object : DragObserver {
override fun onDrag(dragDistance: Offset): Offset {
translate.value = translate.value.plus(dragDistance)
return super.onDrag(dragDistance)
}
})
.graphicsLayer(
scaleX = scale.value,
scaleY = scale.value,
translationX = translate.value.x,
translationY = translate.value.y
),
contentDescription = null,
bitmap = imageBitmap
)
translateX
иtranslateY
, чтобы изображение оставалось внутри поля? - person Bugdr0id   schedule 13.07.2021Modifier.clipToBounds()
илиclip(RectangleShape)
подошли бы @Bugdr0id - person joyl1216   schedule 29.07.2021