Как установить непрозрачность для выбранного графика в карте ESRI

В моем приложении для Android я добавляю символ маркера изображения на карту ESRI, используя класс PictureMarkerSymbol (используя Kotlin), например:

val markerSymbol = PictureMarkerSymbol.createAsync(ContextCompat.getDrawable(context!!, icon) as BitmapDrawable?).get()

Здесь я добавляю несколько маркеров на карту, устанавливая непрозрачность по умолчанию для символа и добавляя его к оверлею, например:

        markerSymbol.opacity = 0.3f
        //add a new graphic as marker point
        val markerGraphicPoint = Point(activeCall.lang, activeCall.lat, spatialReference)
        val graphic = Graphic(markerGraphicPoint, markerSymbol)

        graphicsOverlay.graphics.add(graphic)

Теперь я хочу установить непрозрачность для выбранного изображения (в любом случае я получаю выбранный графический символ из массива). Я могу получить символ из выбранной графики, например:

selectedGraphic?.symbol

Я хочу установить непрозрачность для выбранного символа что-то вроде:

selectedGraphic?.symbol = 1.0f // Need this one

Но как установить непрозрачность, в этом классе символов нет setOpacity

ИЛИ как получить PictureMarkerSymbol из выбранного графика.?

Я пытался бросить его PictureMarkerSymbol сюда:

selectedMarker?.symbol as PictureMarkerSymbol

но здесь я получаю исключение приведения класса

Также попробовал:

val markerGraphicsOverlay = selectedMarker?.graphicsOverlay
markerGraphicsOverlay?.opacity = 0.1f

но результат тот же.

1 ответ

Решение

В ролях символ PictureMarkerSymbol

if (selectedGraphic!= null && selectedGraphic?.symbol != null) {
    val pictureMarkerSymbol = selectedGraphic?.symbol as PictureMarkerSymbol
}
Другие вопросы по тегам