我不会使用完全随机的颜色。你会得到完全不同的饱和度和亮度,看起来很丑陋。
你可以修复一个饱和度(为鲜艳的颜色选择一个高值)和亮度,并选择一个随机的色调值,但你会冒着获得两个几乎相同颜色的连续饼图片的风险。
我会计算一组流传出的色调值,如图所示在回答这个问题:
转贴如下
import java.awt.*;
public class TestComponent extends JPanel {
int numCols = 6;
public void paint(Graphics g) {
float h = 0, dh = (float) getHeight()/numCols;
Color[] cols = getDifferentColors(numCols);
for (int i = 0; i < numCols; i++) {
g.setColor(cols[i]);
g.fillRect(0, (int) h, getWidth(), (int) (h += dh));
}
}
public static Color[] getDifferentColors(int n) {
Color[] cols = new Color[n];
for (int i = 0; i < n; i++)
cols[i] = Color.getHSBColor((float) i/n, 1, 1);
return cols;
}
public static void main(String s[]) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new TestComponent());
f.setSize(400, 400);
f.setVisible(true);
}
}
答案
如果您需要超过30种颜色,您当然也可以改变亮度和饱和度,例如10个深色,10个中间色和10个亮色。
有没有真正的问题。我确定有很多教程,有大量的示例代码,使用可以看到的Android画布。 http://mattgemmell.com/2008/12/08/what-have-you-tried/ – aglassman 2012-04-20 16:03:45