16进制颜色值与百分比颜色值的换算关系

00直接对应0%,0不能当作除数。所以除开

16进制颜色表示是01~FF,换成十进制就是1~255,百分比是1%~100%

由此可知(255/100%)=(X/Y%);由Y得出X后四舍五入再换算成16进制即可

比如50%得出的是127.5,四舍五入则为128、对应的16进制则为8*16,0*16=80。

以下为百分比对应的关系值

100% — FF 
99% — FC 
98% — FA 
97% — F7 
96% — F5 
95% — F2 
94% — F0 
93% — ED 
92% — EB 
91% — E8 
90% — E6 
89% — E3 
88% — E0 
87% — DE 
86% — DB 
85% — D9 
84% — D6 
83% — D4 
82% — D1 
81% — CF 
80% — CC 
79% — C9 
78% — C7 
77% — C4 
76% — C2 
75% — BF 
74% — BD 
73% — BA 
72% — B8 
71% — B5 
70% — B3 
69% — B0 
68% — AD 
67% — AB 
66% — A8 
65% — A6 
64% — A3 
63% — A1 
62% — 9E 
61% — 9C 
60% — 99 
59% — 96 
58% — 94 
57% — 91 
56% — 8F 
55% — 8C 
54% — 8A 
53% — 87 
52% — 85 
51% — 82 
50% — 80 
49% — 7D 
48% — 7A 
47% — 78 
46% — 75 
45% — 73 
44% — 70 
43% — 6E 
42% — 6B 
41% — 69 
40% — 66 
39% — 63 
38% — 61 
37% — 5E 
36% — 5C 
35% — 59 
34% — 57 
33% — 54 
32% — 52 
31% — 4F 
30% — 4D 
29% — 4A 
28% — 47 
27% — 45 
26% — 42 
25% — 40 
24% — 3D 
23% — 3B 
22% — 38 
21% — 36 
20% — 33 
19% — 30 
18% — 2E 
17% — 2B 
16% — 29 
15% — 26 
14% — 24 
13% — 21 
12% — 1F 
11% — 1C 
10% — 1A 
9% — 17 
8% — 14 
7% — 12 
6% — 0F 
5% — 0D 
4% — 0A 
3% — 08 
2% — 05 
1% — 03 
0% — 00

public class ToHex {
  public static void main(String[] args) {
    System.out.println("透明度百分比对应的十六进制:");
    for (int i = 0; i <= 100; i++) {
      float temp=255*i*1.0f/100f;
      int round = Math.round(temp);//四舍五入
      String hexString = Integer.toHexString(round);
       if (hexString.length()<2) {
         hexString+="0";
       }
       System.out.println(" 百分比:"+i+"%"+" HEX: "+hexString.toUpperCase());
     }
  }
}

Java代码来源
作者:didikee
链接:https://www.jianshu.com/p/6b89c463db4c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
posted @ 2018-09-20 10:00  scd  阅读(7215)  评论(0编辑  收藏  举报