1、0x开头与#开头
从计算机的数值表示上讲,0x开头的其实并不是所谓颜色代码的表示方法,而是16进制数的标准写法,譬如0xA就是十进制的10。而**#开头**的六(或三)位十六进制数是在设计领域(如CSS以及一些绘图软件)中颜色代码的表示方法。
2、透明度的计算
透明度分为256个等级,即 0 - 256,0就是透明,255就是不透明
透明度 (透明)0 –> 255(不透明) 对应着16进制 (透明)00 –> FF(不透明)
比如:50%透明度白色
50%也就是256的一半即128,因为是从0开始算的,所以是 127,转换成16进制就是 7F
最终结果:#7F FFFFFF
3、 RGB 与 HEX
RGB: 三通道颜色
他是目前运用最广泛的颜色系统之一
可以通过红绿蓝三色通道, 外加alpha透明度, 来展示几乎所有的颜色
RGB是从颜色的发光原理来设定的, 相当于红绿蓝三个颜色通过不同亮度, 来组合成为需要的颜色
0为最暗, 255为最亮
HEX: 十六进制颜色
十六进制与RGB都可以展示出非常丰富的颜色, 他是通过16进制0~F这16个字符来表达颜色的
同样, 000000为黑色, FFFFFF为白色
RGB转换为HEX
RGB与HEX中每个颜色都是一一对应的关系, 如下面的附表所示
RGB的数值 = 16 * HEX的第一位 + HEX的第二位
示例如下:
RGB: 92, 184, 23292 / 16 = 5余12 -> 5C184 / 16 = 11余8 -> B8232 / 16 = 14余8 -> E8HEX = 5CB8E8
HEX转换RGB
此转换就是将上述的转换逆转即可
示例如下
HEX: F26BC1F2 = 15和2 -> 15 * 16 + 2 = 2426B = 6和11 -> 6 * 16 + 11 = 107C1 = 12和1 -> 12 * 16 + 1 = 193
4、透明度对应的十六进制值
//java代码生成的对应表for (int i = 100; i>=0; i--) {double j = (i / 100.0d);int alpha = (int) Math.round(255-j * 255);String hex = Integer.toHexString(alpha).toUpperCase();if (hex.length() == 1) hex = "0" + hex;int percent = (int) (j*100);System.out.println(String.format("%d%% — %s", percent, hex));}