2013-09-29 199 views

回答

46

这是如何使默认标记

Marker melbourne = mMap.addMarker(new MarkerOptions().position(MELBOURNE) 
    .icon(BitmapDescriptorFactory 
     .defaultMarker(BitmapDescriptorFactory.HUE_AZURE))); 

而这些都是常量,你可以使用

float HUE_AZURE 
float HUE_BLUE  
float HUE_CYAN  
float HUE_GREEN 
float HUE_MAGENTA 
float HUE_ORANGE 
float HUE_RED 
float HUE_ROSE  
float HUE_VIOLET 
float HUE_YELLOW 
+2

只有十种颜色? – kucluk

+0

多数民众赞成在说什么是https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory – JRowan

+1

这些只是一些预定义的色调。由于'defaultMarker()'方法采用'float',因此可以在'[0 ... 360]'范围内提供任何值。 –

9

详细的解答!

float hue = 120; //(Range: 0 to 360) 

Marker melbourne = mMap.addMarker(new MarkerOptions().position(MELBOURNE) 
    .icon(BitmapDescriptorFactory 
     .defaultMarker(hue))); 

你可以给任何色调值范围从0到360,一些常量在这里被定义(https://developers.google.com/android/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory

最佳途径。找到所需的色调(匹配您所需的颜色)。

打开此图像defult_pin在Paint.Net/Photoshop编辑器(或其他)在你的照片编辑器和幻灯片色调条

转到色彩选项,并注意最佳匹配的色调值。

  • 对于Paint.net(调整 - >色相/饱和度)

  • 的Photoshop(摄影 - >调整 - >色相/饱和度)

如果值高于0,使用完全值为 ,如果值低于0,则取值为postivie(absolute),将其添加到180并使用结果值。

enter image description here

+0

有一种叫做GetColor的古老工具。我今天仍然使用它!一探究竟。 http://www.wincatalog.com/getcolor.html –

52

这里是我用来生成动态Hue颜色的基础上给出String颜色标记的方法。

可能对别人有用:)

Marker melbourne = mMap.addMarker(new MarkerOptions().position(MELBOURNE) 
.icon(getMarkerIcon("#ff2299"))); 

// method definition 
public BitmapDescriptor getMarkerIcon(String color) { 
    float[] hsv = new float[3]; 
    Color.colorToHSV(Color.parseColor(color), hsv); 
    return BitmapDescriptorFactory.defaultMarker(hsv[0]); 
} 
+0

但创建浅色和实际颜色较暗 –