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

时间:2014-10-27 13:50:13

标签: android colors android-maps-v2 markers

我正在创建一个应用程序,可以在某些点为地图添加图钉。我希望我的针脚的颜色与我们的应用程序的主题颜色相匹配。对不起,我真的是菜鸟

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)));不起作用。它不允许我在这里插入自定义颜色。我怎样才能做到这一点?感谢:)

2 个答案:

答案 0 :(得分:6)

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

  

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

如果您知道应用主题的十六进制或RGB值,则需要进行一些计算(请参阅example)或仅使用一些free online converter。在您的情况下,色调值将为47。

此外,您无需在代码中设置两次.icon属性。

答案 1 :(得分:0)

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

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