Set map marker to a custom color Android

强颜欢笑 提交于 2019-12-10 03:32:08

问题


I am making an app that adds pins to a map at certain points. I want the color of my pins to match the theme colors of our app. Sorry I'm really a noob

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)));

The .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.color))); does not work. It will not allow me to insert a custom color here. How can I do this? Thanks:)


回答1:


defaultMarker() method allows to set custom color, but only by providing hue value. According to android documentation:

(Hue) Value must be greater or equal to 0 and less than 360

If you know Hex or RGB value of your app theme, you need to do some calculations (see example ) or simply use some free online converter. In your case hue value will be 47.

Also, there is no need to set .icon() property in your code twice.




回答2:


I have created this simple method to get marker of any color.

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


来源:https://stackoverflow.com/questions/26589074/set-map-marker-to-a-custom-color-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!