esri-maps - 如何在 ESRI 地图中将不透明度设置为选定的图形
问题描述
在我的 android 应用程序中,我使用PictureMarkerSymbol类(使用 Kotlin)在ESRI 地图上添加图片标记符号,例如:
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
但同样的结果。
解决方案
将符号投射到PictureMarkerSymbol
if (selectedGraphic!= null && selectedGraphic?.symbol != null) {
val pictureMarkerSymbol = selectedGraphic?.symbol as PictureMarkerSymbol
}
推荐阅读
- java - 我有一个不正确的查询,但我找不到错误
- java - Spring Boot 和 JavaFX,使用 WeaverFX
- typescript - 在 TypeScript 中检查文字对象类型的更简单方法
- c# - 我们是否允许在启用 Mono 解释器的情况下发布 Xamarin iOS 应用程序?
- node.js - 在 node.js 中跟踪当前活跃用户
- php - 在 WordPress 管理仪表板中更改 WooCommerce 产品菜单标题
- ios - 用户从 UIPickerView 选择值后如何启用按钮?
- sql - SQL Server 代理作业和 SSIS 项目
- javascript - 引导卡页脚通过滑动动画上下移动
- mysql - SQL:计算行数并返回最大计数的所有行:无效使用组函数