如何在android中将谷歌地图标记颜色更改为灰色

d27*_*abh 7 android colors google-maps-markers

我已经知道的事情

  • 1) 创建 MarkerOptions 对象。
  • 2) 使用 object.icon(BitmapDescriptorFactory.defaultMarker(<color value>));
  • 3) 颜色值是色调颜色值。Google 指定了一些标准颜色值(HUE.BLUE、HUE.AZURE 等)
  • 4) 要获得所需的颜色,请选择 0 到 360 之间的值。0 是红色,90 是青色,270 是紫色

我需要什么?灰色的这个特定浮点值

我的研究:色轮 灰色不包含在 HUE 颜色中。它在音调中。那么如何在 Tones 中访问颜色值。

And*_*ndy 8

没有灰色可用作色调。所以一种方法是抓取一个标记 png 并修改为灰色(外部),就像在这个快照中一样(这是所有的色调加上顶部的特殊灰色)。从资源创建 BitmapDescriptor:

(对于灰色 png,将透明颜色设置为白色。)

在此处输入图片说明

相关代码(对于答案不是必需的):

public void createMarkers() {
    LatLng pos = new LatLng(38.547279, -121.46101);
    for (int i = 0; i < 360; i++) {
        mMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.defaultMarker(i)).position(pos));
        double lat = pos.latitude;
        double lng = pos.longitude;
        lng += 0.01;
        if ((i + 1) % 40 == 0) {
            lng = -121.46101;
            lat = pos.latitude + 0.01;
        }
        pos = new LatLng(lat,lng);

    }
    double lat = pos.latitude + 0.01;
    pos = new LatLng(lat, pos.longitude);
    BitmapDescriptor bd = BitmapDescriptorFactory.fromResource(R.drawable.ic_map_marker);
    mMap.addMarker(new MarkerOptions().icon(bd).position(pos));

}
Run Code Online (Sandbox Code Playgroud)


Gil*_*oot 5

对于我们这些真正想要使用现有色调颜色的人来说,您可以执行以下操作:


fun MapFragment.addGreenMarker(latLng: LatLng) {
    getMap()?.apply {
        addMarker(
            MarkerOptions()
                .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))
                .position(latLng)
                .draggable(true)
        )
    }
}

Run Code Online (Sandbox Code Playgroud)