- 我们直接从代码上去了解,先附上代码。
public static String getRandomHexColor() {
float hue = random.nextFloat();
float saturation = (random.nextInt(2000) + 1000) / 10000f;
float luminance = 0.9f;
Color color = Color.getHSBColor(hue, saturation, luminance);
return '#' + Integer.toHexString(color.getRGB() & 0xffffff) | 0x1000000).substring(1);
}
- 分析上面return那行代码。我们依旧先附上代码,在代码中进行讲解。
return '#' + Integer.toHexString(color.getRGB() & 0xffffff));
- 具体实例如下:
@Test
public void RandomHexColor_test() {
float hue = random.nextFloat();
float saturation = (random.nextInt(2000) + 1000) / 10000f;
float luminance = 0.9f;
System.out.println("变量hue的值为: " + hue);
System.out.println("变量saturation的值为: " + saturation);
System.out.println("变量luminance的值为: " + luminance);
Color color = Color.getHSBColor(hue, saturation, luminance);
System.out.println("对象color的值: " + color);
System.out.println("color.getRGB() " + color.getRGB());
System.out.println("二进制表示 color。getRGB() "+Integer.toBinaryString(color.getRGB()));
System.out.println();
System.out.println("二进制表示0xffffff "+ Integer.toBinaryString(0xffffff) + "\n");
System.out.println("二进制表示color.getRGB() & 0xffffff " + Integer.toBinaryString((color.getRGB() & 0xffffff)) + "\n");
System.out.println("十进制表示color.getRGB() & 0xffffff " + (color.getRGB() & 0xffffff));
System.out.println("\n最后颜色结果 二进制表示 " + Integer.toBinaryString((color.getRGB() & 0xffffff)| 0x1000000));
System.out.println(" #" + Integer.toHexString((color.getRGB() & 0xffffff) | 0x1000000).substring(1));
}
