Увеличье изображение с изображениями маркеров с помощью Android ComposeAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Увеличье изображение с изображениями маркеров с помощью Android Compose

Сообщение Anonymous »

Я пытаюсь реализовать следующее, используя JetPack Compose: < /p>

Показать изображение о карте < /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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»