这个问题在这里已有答案:
我正在为我的app小部件实现一个小部件透明度选项,尽管我在获取正确的十六进制颜色值时遇到了一些麻烦 . 作为十六进制颜色透明度的全新,我搜索了一下,虽然我找不到我的问题的具体答案 .
我想用十六进制颜色设置透明度,所以让我说我的十六进制颜色ID“#33b5e5”,我希望它是50%透明 . 然后我将使用“#8033b5e5”因为80是50% .
我在这里找到了一个有用的图表:http://www.dtp-aus.com/hexadeci.htm . 有了这些数据,我设法得到了这个:
0% = #00
10% = #16
20% = #32
30% = #48
40% = #64
50% = #80
60% = #96
70% = #112
80% = #128
90% = #144
现在,当我以十六进制高于100时问题开始出现 . 十六进制颜色代码只能长8个符号吗?例如#11233b5e5(80%)崩溃 .
我能做些什么才能让我使用更高的数字呢?
10 回答
使用python来计算它,例如(用python 3编写),50%透明度:
:)
我为Android应用程序构建了这个小帮助方法,可能会有用:
这可能是非常晚的答案..但这个图表杀了它 .
所有百分比值都映射到十六进制值 .
http://online.sfsu.edu/chrism/hexval.html
在谷歌搜索(或click here)上试试这个
255 * .2 to hex
结果会产生
0x33
.但是,谷歌不会舍入值,因此您只能使用1位乘数 . 如果你想使用说.85,你必须首先获得255 * .85的舍入值,然后在谷歌搜索中输入
(rounded-value here) to hex
.颜色十六进制表示法如下:#AARRGGBB
答:阿尔法
R:红色
G:绿色
B:蓝色
你应该先看看hexadecimal的工作原理 . 你最多可以写FF .
这是一个十六进制值百分比的正确表 . 例如 . 对于50%的白色你会使用#80FFFFFF .
100% - FF
95% - F2
90% - E6
85% - D9
80% - CC
75% - BF
70% - B3
65% - A6
60% - 99
55% - 8C
50% - 80
45% - 73
40% - 66
35% - 59
30% - 4D
25% - 40
20% - 33
15% - 26
10% - 1A
5% - 0D
0% - 00
(source)
我意识到这是一个老问题,但我在做类似的事情时遇到过它 .
使用SASS,您可以非常优雅地将RGBA转换为十六进制ARGB:
ie-hex-str
. 我在这里用它来混合 .输出:
我总是来这里检查int / hex alpha值 . 因此,最终在我的java utils类中创建一个简单的方法 . 此方法将百分比转换为十六进制值并附加到颜色代码字符串值 .
所以,
Utils.setColorAlpha(30, "#000000")
会给你#4c000000
简答
您可以在https://play.golang.org/p/l1JaPYFzDkI中查看十六进制值的完整百分比表和 run 此操场中的代码 .
伪代码的简短说明
十六进制值的百分比
decimal =百分比* 255/100 . 例如:十进制= 50 * 255/100 = 127.5
将 decimal 转换为十六进制值 . 例如:十进制127.5 = 7 * 161 15 =十六进制7F
十六进制值为百分比
将hexaxdecimal值转换为decimal . 例如:D6 = 13 * 161 6 = 214
percentage =(十进制值)* 100/255 . 例如:214 * 100/255 = 84%
More infos for the conversion decimal <=> hexadecimal
答案:如何在脑海中计算
问题可以通过cross multiplication来解决 .
我们有一个百分比(范围从0到100)和另一个数字(范围从0到255)然后转换为十六进制 .
100 <==> 255(以十六进制表示的FF)
0 <==> 0(十六进制00)
1%
如果你向下舍入,则
2%
hexa中的
最佳答案中的表格给出了5%的逐步百分比 .
如何计算你头脑中的数字?由于 2.5 增量,将第2个添加到第一个,将3添加到下一个
95% - F2 //开始
96% - F4 //将2添加到F2
97% - F7 //添加3 . 或F2 5 = F7
98% - F9 //加2
99% - FC //添加3. 9 3 = 12以十六进制:C
100% - FF //加2
我更喜欢教如何找到解决方案而不是交 table
该图表未显示百分比 . “#90”不是“90%” . 该图表显示十六进制到十进制的转换 . 十六进制数90(通常表示为0x90)等于十进制数144 .
十六进制数字是base-16,因此每个数字都是0到F之间的值 . 双字节十六进制值的最大值(例如颜色的透明度)是0xFF,或十进制的255 . 因此100%是0xFF .