How to Add Random Colors in For Loop
我有一个自定义的piechart视图,现在我正在为for循环中的每个pie设置随机颜色,
1 2 | color = Color.argb(100, r.nextInt(256), r.nextInt(256), r.nextInt(256)); pie.addItem(PieName, PieValue, color); |
你可以想象我有时会有奇怪的颜色,或者几乎相同的颜色。所以现在我在考虑使用某些颜色,我如何设置一些颜色,如蓝色,绿色,红色,黄色…然后对循环中的每个馅饼使用它们中的一个?
Android中已经有非常有限的调色板(请参见此处),但即使这些调色板也缺少任何类型的收集界面。您有几个选择:
创建要使用的颜色列表,并通过随机偏移访问该列表。如果你正在寻找一个标准的颜色集,请尝试这样的方法。代码可能如下所示:
1 2 3 4 5 | ArrayList<Integer> randColors = new ArrayList<Integer>(); randColors.add(Color.parseColor("#0000FF")); randColors.add(Color.parseColor("BlanchedAlmond")); randColors.add(Color.parseColor("MediumAquaMarine")); |
号
以可预测的方式增加颜色。我在python中做过一次这个代码,但是如果它对您有用的话,您可以很容易地转换它:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | STEPS = 6 BIG = 0x330000 MED = 0x003300 SMA = 0x000033 count = 1 num = 0x000000 for k in range(0, STEPS): for j in range(0, STEPS): for i in range(0, STEPS): num = ( k * BIG ) + ( j * MED ) + ( i * SMA ) print phex(num) count += 1 def phex(num): return"0x%0.6X" % num |
您应该创建一个要使用的颜色数组(如红-绿-橙色)。
然后生成一个随机数,并将其用作从数组中获取随机颜色的键。
如果您不想重复,您必须维护已经使用过的密钥的另一个列表。
1 2 3 | Color[] colors = {new Color(255,0,0),new Color(255,255,255),new Color(0,0,255)}; int random = create_random_number(); //pesudo code Color my_color = colors[random]; |
下面是创建一个随机数的例子(使用CeaTyRead RoopyNo.in):在爪哇中获得随机数