将 ImageVector 从 Jetpack Compose 转换为 BitmapDescriptor

时间:2021-05-24 01:03:55

标签: android google-maps android-jetpack android-jetpack-compose

我正在尝试将我拥有的 ImageVector 图标(例如创建为 Icons.Default.Home)添加到 Google 地图中的标记。我目前拥有的是:

val opt = MarkerOptions()
opt.position(LatLng(lat, lng))          // lat and lng are defined above
opt.title(title)                        // title as well
opt.icon(BitmapDescriptorFactory.?????) // and there the problem occurs.

我发现 BitmapDescriptorFactory 可以通过传递资源或位图(分别为 BitmapDescriptorBitmapDescriptorFactory.fromResource(resourceId: Int))来创建请求的 BitmapDescriptorFactory.fromBitmap(image: Bitmap)

问题是我不知道如何将我从 Icons.Default.Home 获得的 ImageVector 转换为上述任何一种。我在 Stack 上发现了一些关于将可绘制的矢量转换为位图的问题,但仍然没有涵盖转换 ImageVector 的问题。我还检查了 ImageVector 的实例是否有任何可能有用的方法,但它只能 - 如果我没记错的话 - 将其转换为字符串,这在我的情况下完全没用。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

好吧,我想我以某种(不是那么)肮脏的伎俩做到了。 我从 Google Material Icons 站点 (https://fonts.google.com/icons?selected=Material+Icons) 下载了我需要的图标并将它们导入到我的项目中。后来我在这里使用了@Leo Droidcoder 提供的片段:Custom marker in google maps in android with vector asset icon 将这些图标用作标记。

这样我的标记看起来就像我想要的图标,但我相信一定有更好的解决方案。