簡體   English   中英

如何在android中將谷歌地圖標記顏色更改為灰色

[英]How to change the google maps marker color to grey in android

我已經知道的事情

  • 1) 創建 MarkerOptions 對象。
  • 2) 使用object.icon(BitmapDescriptorFactory.defaultMarker(<color value>));
  • 3) 顏色值是色調顏色值。 Google 指定了一些標准顏色值(HUE.BLUE、HUE.AZURE 等)
  • 4) 要獲得所需的顏色,請選擇 0 到 360 之間的值。0 是紅色,90 是青色,270 是紫色

我需要什么? 灰色的這個特定浮點值

我的研究: 色輪灰色不包含在 HUE 顏色中。 它在音調中。 那么如何在 Tones 中訪問顏色值。

沒有灰色可用作色調。 所以一種方法是抓取一個標記 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));

}

對於我們這些真正想要使用現有色調顏色的人,您可以執行以下操作:


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

  1. 找到 Google 現有的地圖圖標之一 - 可能是 .png。
  2. 把它放到你的系統上並使用你的圖形程序來改變它,即。 GIMP。 不要失去它的透明度。
  3. 根據 Android Studio 的命名規則保存 - 即。 沒有連字符。
  4. 在 Android Studio 中,右鍵單擊 res/drawable 文件夾。
  5. 單擊在資源管理器中顯示。
  6. 進入可繪制文件夾。
  7. 將新圖標復制/粘貼到 res/drawable 文件夾中 - 不要擔心它是 .png 文件,而文件夾中的其他文件是 .xml 文件。
  8. 關閉資源管理器窗口。
  9. 要在您的應用程序中使用 - 假設文件名為gray_dot.pngmMarkerOptions.position(beachCoord).title("marker title").snippet("marker info").icon(BitmapDescriptorFactory.fromResource(R.drawable.gray_dot) );

當您輸入R.drawable.gr... 時- 它顯示沒有 .png 擴展名。

運行您的應用程序。 基本測試表明,圖標大小在平板電腦和手機上都可以正常工作,無需擔心不同的分辨率。 我將進行更多測試,以確保在更高分辨率下仍然如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM