Показать изображение о карте < /li>
Добавить несколько маркеров в верхнюю часть этой карты в определенные позиции < /li>
, когда пользовательский зум или ложение, карта, маркеры должны придерживаться исходных положений к карте, и они сохраняют свои исходные позиции, и они сохраняют свои исходные позиции, и они сохраняют свои исходные позиции, и они сохраняют свои исходные позиции, и они сохраняют карты, и они будут поддерживать их. /> < /ul>
У меня есть следующий код для этого: < /p>
Код: Выделить всё
@Composable
fun ZoomableImageWithMarkers(
imageUrl: String,
markers: List
>
) {
var scale by remember { mutableStateOf(1f) }
var offset by remember { mutableStateOf(Offset.Zero) }
Box(
modifier = Modifier
.fillMaxSize()
.pointerInput(Unit) {
detectTransformGestures { _, pan, zoom, _ ->
scale *= zoom
offset += pan
}
},
contentAlignment = Alignment.Center
) {
Image(
painter = rememberAsyncImagePainter(imageUrl),
contentDescription = null,
modifier = Modifier
.graphicsLayer(
scaleX = scale,
scaleY = scale,
translationX = offset.x,
translationY = offset.y
)
.fillMaxWidth()
)
markers.forEach { (normalizedX, normalizedY) ->
Image(
painter = painterResource(id = R.drawable.marker),
contentDescription = "Marker",
modifier = Modifier
.graphicsLayer(
// scaleX = scale, // If this is here, markers scale along with the image and stick to their place
// scaleY = scale,
translationX = offset.x,
translationY = offset.y
)
.offset(
x = (normalizedX * 100).dp,
y = (normalizedY * 100).dp
)
.size(24.dp)
)
}
}
}
< /code>
И я называю это так: < /p>
val exampleMarkers = listOf(
Pair(0.3f, 0.5f), // 30% X, 50% Y (relative to image size)
)
ratibr Увеличение, вниз, когда я увеличиваю масштаб. Насколько я вижу, он сохраняет свое положение относительно моих уменьшающихся пальцев, но мне нужно, чтобы он сохранил свою позицию относительно карты.
Подробнее здесь: https://stackoverflow.com/questions/794 ... id-compose
Мобильная версия