我打算在一个框内建立一个可缩放的图像视图,就像第一个截图一样。但是当我放大图片时,它将超出框的范围。有没有办法缩放图像,但保持大小不变?除了 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
以使图像保持在框内吗? - Bugdr0idModifier.clipToBounds()
或clip(RectangleShape)
可以完成此任务@Bugdr0id。 - joyl1216