随机化Android标记颜色

时间:2015-03-08 09:24:03

标签: java android

我知道如何更改标记颜色,但是可以使用某种随机生成器将BitmapDecriptorFactory随机化一个,例如

            final String [] colours = new String[]{
                    "HUE_AZURE",
                    "HUE_BLUE",
                    "HUE_CYAN",
                    "HUE_GREEN",
                    "HUE_MAGENTA",
                    "HUE_ORANGE",
                    "HUE_RED",
                    "HUE_ROSE",
                    "HUE_VIOLET",
                    "HUE_YELLOW"
            };
            final Random r=new Random();

 LatLng PERTH = new LatLng(point.latitude, point.longitude);
            Marker perth = map.addMarker(new MarkerOptions()
                    .position(PERTH)
                    .draggable(true)
                    .icon(BitmapDescriptorFactory
                    .defaultMarker(BitmapDescriptorFactory.(r.colours))));

沿着这些方向的东西

1 个答案:

答案 0 :(得分:4)

查看documentation for BitmapDescriptor.defaultMarker()

  

public static BitmapDescriptor defaultMarker (float hue)

     

创建一个引用颜色的位图描述符   默认标记图像。为方便起见,有一组预定义的   色调值。请参见示例HUE_YELLOW

     

参数 hue标记的色调。价值必须大于或等于   0到小于360。

特别要注意最后一句:“价值必须大于或等于 到0和小于360。“

这意味着选择随机颜色可能很简单:

BitmapDescriptorFactory.defaultMarker(new Random().nextInt(360));

如果您想从预定义的一组颜色中选择一种随机颜色,您可以使用接近现有颜色的颜色:

float[] colours = { BitmapDescriptorFactory.HUE_AZURE, BitmapDescriptorFactory.HUE_BLUE /* etc */ };
BitmapDescriptorFactory.defaultMarker(colours[new Random().nextInt(colours.length)]);