Android 将贴图标记设置为自定义颜色

Android 将贴图标记设置为自定义颜色,android,colors,android-maps-v2,markers,Android,Colors,Android Maps V2,Markers,我正在制作一个应用程序,可以在地图的某些位置添加图钉。我希望我的PIN的颜色与我们应用程序的主题颜色相匹配。对不起,我真是个笨蛋 int color = Color.rgb(255, 201, 14); mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); final LatLng PERTH = new LatLng(40, -80); Marker perth = mMap.addMa

我正在制作一个应用程序,可以在地图的某些位置添加图钉。我希望我的PIN的颜色与我们应用程序的主题颜色相匹配。对不起,我真是个笨蛋

int color = Color.rgb(255, 201, 14);
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
final LatLng PERTH = new LatLng(40, -80);
Marker perth = mMap.addMarker(new MarkerOptions()
  .position(PERTH)
  .title("MY PIN")
  .snippet("MAGGIE EATS SNAKE SKINS")
  .draggable(true)
  .icon(BitmapDescriptorFactory.fromResource(R.drawable.pin))
  .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.color)));
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.color));不起作用。它不允许我在这里插入自定义颜色。我该怎么做?谢谢:)

defaultMarker()
方法允许设置自定义颜色,但仅通过提供色调值。根据android文档:

(色调)值必须大于或等于0且小于360

若你们知道你们的应用程序主题的十六进制或RGB值,你们需要做一些计算(请参阅),或者简单地使用一些。在您的情况下,色调值将为47


另外,不需要在代码中设置两次.icon()属性。

我创建了这个简单的方法来获取任何颜色的标记

 public BitmapDescriptor getMarkerIcon(int color) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    return BitmapDescriptorFactory.defaultMarker(hsv[0]);
}

这是一个很好的问题,但解决方案似乎是设计标记图像并使用它。好的,谢谢。当我使用转换器获取颜色的色调值(#678E00)时,它会给我3个值(76100,27.8),但我只能向BitmapDescriptorFactory提供1个数字。你知道我怎么做吗?在你的情况下,你需要将十六进制转换成色调,例如使用这个。我觉得奇怪的是,我得到了不同的#678E00值(103142,0)