Android map marker color?
Here is a method I am using to generate dynamic Hue
colors for markers based on given String
color.
May be useful for someone :)
Marker melbourne = mMap.addMarker(new MarkerOptions().position(MELBOURNE).icon(getMarkerIcon("#ff2299")));// method definitionpublic BitmapDescriptor getMarkerIcon(String color) { float[] hsv = new float[3]; Color.colorToHSV(Color.parseColor(color), hsv); return BitmapDescriptorFactory.defaultMarker(hsv[0]);}
This is how to make a default marker
Marker melbourne = mMap.addMarker(new MarkerOptions().position(MELBOURNE) .icon(BitmapDescriptorFactory .defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
and these are the constants you can use
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
DETAILED ANSWER!
float hue = 120; //(Range: 0 to 360)Marker melbourne = mMap.addMarker(new MarkerOptions().position(MELBOURNE) .icon(BitmapDescriptorFactory .defaultMarker(hue)));
You can give any hue value ranging from 0 to 360, some constants are defined here (https://developers.google.com/android/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory)
BEST WAY! to find required hue(that matches your required color).
Open this image in Paint.Net/Photoshop editor (or other)
Goto hue options in your photo editor and slide hue bar and note best matched hue value.
For Paint.net (Adjustments -> Hue/Saturation)
For Photoshop (Photography -> Adjustments -> Hue/Saturation)
if value is above 0, use exact value, if value is below 0, take postivie (absolute) of value, add it in 180 and use the result value.