我们在开发过程中经常看到美工给你的标注颜色类似于#0000FF
(蓝色)这样的颜色码,然后还可能有一个不透明度(美工可能给你说的是透明度,但是这个准确来说是不透明度,下面有图为证)
那这个不透明度,在Andriod中怎么表示呢,我来普及一下这个基础知识
Android中颜色简介
Android中的颜色值通常遵循RGB/ARGB标准,使用时通常以#
字符开头,以16进制表示。
其中RGB依次代表红色(Red)、绿色(Green)、蓝色(Blue).
ARGB依次代表透明度(Alpha)、红色(Red)、绿色(Green)、蓝色(Blue)
eg:#FF00CC99其中FF是透明度,00是红色值,CC是绿色值,99是蓝色值
不透明度
透明度的范围是0-255,在计算机中,我们就用16进制(00-FF)表示,全透明就是00,完全不透明就是FF
透明度和不透明度加起来等于1或者说100%
计算方法
255 * 不透明度 -> 转换成16进制数
eg:30%不透明度也就是255*30%=76.5,四舍五入77,然后利用计算器转为16进制为4D
下面是代码计算
public static void main(String[] args) {
for (int i = 0; i <= 100; i++) {
float temp = 255 * i * 1.0f / 100f;
int alpha = Math.round(temp);
String hexStr = Integer.toHexString(alpha);
if (hexStr.length() < 2)
hexStr = "0" + hexStr;
System.out.println(i + "%, " + hexStr.toUpperCase());
}
}
干货(懒程序员必备)
不透明度 | 16进制表示 |
---|---|
0% | 00 |
1% | 03 |
2% | 05 |
3% | 08 |
4% | 0A |
5% | 0D |
6% | 0F |
7% | 12 |
8% | 14 |
9% | 17 |
10% | 1A |
11% | 1C |
12% | 1F |
13% | 21 |
14% | 24 |
15% | 26 |
16% | 29 |
17% | 2B |
18% | 2E |
19% | 30 |
20% | 33 |
21% | 36 |
22% | 38 |
23% | 3B |
24% | 3D |
25% | 40 |
26% | 42 |
27% | 45 |
28% | 47 |
29% | 4A |
30% | 4D |
31% | 4F |
32% | 52 |
33% | 54 |
34% | 57 |
35% | 59 |
36% | 5C |
37% | 5E |
38% | 61 |
39% | 63 |
40% | 66 |
41% | 69 |
42% | 6B |
43% | 6E |
44% | 70 |
45% | 73 |
46% | 75 |
47% | 78 |
48% | 7A |
49% | 7D |
50% | 80 |
51% | 82 |
52% | 85 |
53% | 87 |
54% | 8A |
55% | 8C |
56% | 8F |
57% | 91 |
58% | 94 |
59% | 96 |
60% | 99 |
61% | 9C |
62% | 9E |
63% | A1 |
64% | A3 |
65% | A6 |
66% | A8 |
67% | AB |
68% | AD |
69% | B0 |
70% | B3 |
71% | B5 |
72% | B8 |
73% | BA |
74% | BD |
75% | BF |
76% | C2 |
77% | C4 |
78% | C7 |
79% | C9 |
80% | CC |
81% | CF |
82% | D1 |
83% | D4 |
84% | D6 |
85% | D9 |
86% | DB |
87% | DE |
88% | E0 |
89% | E3 |
90% | E6 |
91% | E8 |
92% | EB |
93% | ED |
94% | F0 |
95% | F2 |
96% | F5 |
97% | F7 |
98% | FA |
99% | FC |
100% | FF |
eg:
UI给出的颜色值为#000000,不透明度为40%。
那么结合上表,40%不透明度对应的16进制的值为66,那么最终颜色值就是#66000000
更多博文请移步 Eicky Blog