【问题标题】:Marker saturation/value标记饱和度/值
【发布时间】:2018-08-31 09:36:23
【问题描述】:

我知道如何在 Android/Java 中制作标记图标?

BitmapDescriptor icon = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE);

但是,我想根据位置属性将颜色更改为从黑色 -> 蓝色(或其他东西)。

如何更改图标的值以实现此目的?

【问题讨论】:

    标签: java android colors google-maps-android-api-2 marker


    【解决方案1】:

    您不能使用BitmapDescriptorFactory 将黑色设置为标记。这是因为我们无法在BitmapDescriptorFactory 中设置标记的亮度。

    但是您可以通过设置 0.0f 到 359.0f 之间的值来更改标记的颜色
    BitmapDescriptorFactory

    例如,如果你想要红色,你可以使用

    BitmapDescriptor icon = BitmapDescriptorFactory.defaultMarker(0.0f);
    

    这样你也可以设置其他颜色

    RED = 0.0F;
       ORANGE = 30.0F;
       YELLOW = 60.0F;
       GREEN = 120.0F;
       CYAN = 180.0F;
       AZURE = 210.0F;
       BLUE = 240.0F;
       VIOLET = 270.0F;
       MAGENTA = 300.0F;
       ROSE = 330.0F;
    

    请注意。这些 HUE 取决于您的设备上安装了哪些 Google Play 服务。所以我的建议是,使用自定义图标作为标记

    【讨论】:

    • 我知道如何改变色调。我要求的是改变价值。是否有图像函数可以在 BitmapDescriptor 或其他东西上放置过滤器?
    • 为此,您可以使用不同的 BitmapDescriptor 作为标记。即,如果您想更改标记颜色,可以使用 marker.setIcon( BitmapDescriptorFactory.defaultMarker(50.0f);)
    • 这不会改变值(暗度),只会改变色调。
    • 在这种情况下,您必须使用自定义标记。我们无法在 BitmapDescriptorFactory 中设置亮度。
    【解决方案2】:

    对于每个位置,您必须创建一个新的标记图标并为其选择合适的颜色。

    Marker melbourne = mMap.addMarker(new MarkerOptions().position(your_position)
        .icon(BitmapDescriptorFactory
            .defaultMarker(your_color)));
    

    【讨论】:

      猜你喜欢
      • 2018-04-01
      • 2011-05-17
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      • 2018-01-15
      • 1970-01-01
      • 2016-12-24
      相关资源
      最近更新 更多