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

How to change the google maps marker color to grey in android

我已经知道的事情

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

我的研究:Color wheel 灰色不包含在 HUE 颜色中。它在语气中。那么如何访问色调中的颜色值。

没有可用的灰色作为色调。所以一种方法是抓取一个标记 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));

}
  1. 找到 Google 的现有地图图标之一 - 可能是 .png。
  2. 把它放到你的系统上,然后用你的图形程序改变它。 GIMP。不要失去它的透明度。
  3. 根据 Android Studio 的命名规则保存它 - 即。没有连字符。
  4. 在 Android Studio 中,右键单击 res/drawable 文件夹。
  5. 单击“在资源管理器中显示”。
  6. 进入可绘制文件夹。
  7. Copy/paste 将您的新图标放入 res/drawable 文件夹 - 不要担心它是 .png 文件而文件夹中的其他文件是 .xml 文件。
  8. 关闭资源管理器Window。
  9. 要在您的应用中使用 - 假设文件名为 gray_dot.pngmMarkerOptions.position(beachCoord).title("marker title").snippet("marker info").icon(BitmapDescriptorFactory.fromResource(R.drawable.gray_dot));

当您键入 R.drawable.gr... - 它显示时没有 .png 扩展名。

运行 您的应用。基本测试表明图标大小适用于平板电脑并且 phone 很好,无需担心不同的分辨率。我将进行更多测试,以了解这对于更高的分辨率仍然适用。

对于我们这些真正想要使用现有色调的人,您可以这样做:


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