题 六角透明颜色[复制]


这个问题在这里已有答案:

我正在为我的app小部件实现一个wigdget透明度选项,尽管我在修改十六进制颜色值时遇到了一些麻烦。作为十六进制颜色透明度的全新,我搜索了一下,虽然我找不到我的问题的具体答案。

我想用十六进制颜色设置透明度,所以让我说我的十六进制颜色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%)崩溃。

我能做些什么才能让我使用更高的数字呢?


949
2018-04-06 14:30


起源


岁月已经过去了,我一直在这里回来:) - Signcodeindie
Android Material Design:100%: FF,87%: DE,70%: B3,54%: 8A,50%: 80,38%: 61,12%: 1F - Suragch
我总是更喜欢重复的问题! - Alex Jolig
它在我的浏览器中的书签多年:) - Triode


答案:


这是一个十六进制值百分比的正确表。例如。对于50%的白色你会使用#80FFFFFF。

  • 100% - FF
  • 95% - F2
  • 90% - E6
  • 85% - D9
  • 80% - CC
  • 75% - 高炉
  • 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

资源


3026
2018-06-21 16:15



让我们不要忘记关注源链接并提出原始答案,这是一个不同的作者 - tbraun
我使用StackOverflow已经差不多2年了,我时不时地来这里。这个答案应该在主屏幕上。 - Mehdiway
那么“坚固”的白色怎么样? “00FFFFFF”或“ffFFFFFF”? - serhio
@serhio 100%是稳固的。 #FFFFFFFF - Dave Haigh
它适用于棒棒糖 - Sami Eltamawy


简短的回答

您可以看到百分比的完整表格到十六进制值和  在这个游乐场的代码 https://play.golang.org/p/l1JaPYFzDkI 。

伪代码的简短解释

十六进制值的百分比

  1. 十进制 =百分比* 255/100。例如:十进制= 50 * 255/100 = 127.5
  2. 兑换 十进制 到十六进制值。例如:十进制127.5 = 7 * 161 + 15 =十六进制7F

十六进制值为百分比

  1. 将hexaxdecimal值转换为decimal。例如:D6 = 13 * 161 + 6 = 214
  2. 百分比=(十进制值)* 100 / 255.例如:214 * 100/255 = 84%

转换十进制<=>十六进制的更多信息 

答案很长:如何在脑海中计算

这个问题可以通过一般来解决 交叉乘法

我们有一个百分比(范围从0到100)和另一个数字(范围从0到255)然后转换为十六进制。

  • 100 <==> 255(十六进制FF)
  • 0 <==> 0(十六进制00)

1%

  • 1 * 255/100 = 2,5
  • 2,5的六分之一是 2 如果你把它围起来。

2%

  • 2 * 255/100 = 5
  • 在hexa中是5  。

最佳答案中的表格给出了5%的逐步百分比。

如何计算你头脑中的数字?因为 2.5 递增,第一个加2,下一个加3

  • 95% - F2 //开始
  • 96% - F4 //将2添加到F2
  • 97% - F7 //加3。或F2 + 5 = F7
  • 98% - F9 //加2
  • 99% - FC //在hexa中添加3. 9 + 3 = 12:C
  • 100% - FF //加2

我更喜欢教如何找到解决方案而不是交桌子

给一个人一条鱼,你喂他一天;教人钓鱼和钓鱼   你喂他一辈子


91
2018-03-19 10:14



我更喜欢解释如何找到解决方案而不是给出表格结果。俗话说“给人一条鱼,你喂他一天;教一个人钓鱼,你喂他一辈子” - Raymond Chenon


颜色十六进制表示法如下:#AARRGGBB

  • 答:阿尔法
  • R:红色
  • G:绿色
  • B:蓝色

你应该先看看如何 十六进制 作品。你最多可以写FF。


26
2018-04-06 14:35



所以AA等级是16步并且从0-F开始,其中FF是100%而00是0%? - SweSnow
@SweSnow是的,没错。 - amalBit


该图表未显示百分比。 “#90”不是“90%”。 该图表显示十六进制到十进制的转换。十六进制数90(通常表示为0x90)等于十进制数144。

十六进制数字是base-16,因此每个数字都是0到F之间的值。双字节十六进制值的最大值(例如颜色的透明度)是0xFF,或十进制的255。因此100%是0xFF。


20
2018-04-06 14:39



如果它不是十六进制到十进制转换的问题,那么测量透明度的正确方法是什么? 0xFF仍然是两个数字。是否有某种我不知道的系统正确图表? - SweSnow
它 是 十六进制到十进制的问题。问题是你不能只取十进制数并称之为百分比(例如十进制中的50不是百分比)。由于十六进制表示的最大十进制值为255,因此值0x7F(十进制127)约为50%。十进制数50(0x32)仅约为20%。 - Tanis.7x
至于0xFF超过2位数 - “0x”只是一个符号方便,因此每次写出数字时都不必指定“十六进制数......”。在您的XML中,您仍然会将其排除在外。因此,根据上面提到的#AARRGGBB方案@erkangur,50%透明的黑色背景将被写入color.xml文件中作为“#7F000000”。 - Tanis.7x


我为Android应用程序构建了这个小帮助方法,可能会有用:

 /**
 * @param originalColor color, without alpha
 * @param alpha         from 0.0 to 1.0
 * @return
 */
public static String addAlpha(String originalColor, double alpha) {
    long alphaFixed = Math.round(alpha * 255);
    String alphaHex = Long.toHexString(alphaFixed);
    if (alphaHex.length() == 1) {
        alphaHex = "0" + alphaHex;
    }
    originalColor = originalColor.replace("#", "#" + alphaHex);


    return originalColor;
}

15
2018-06-24 11:03





enter image description here

这可能是非常晚的答案..但这个图表杀了它。

所有百分比值都映射到十六进制值。

http://online.sfsu.edu/chrism/hexval.html


15
2018-04-22 08:31





在谷歌搜索上试试这个(或者 点击这里

255 * .2 to hex

它会产生 0x33 结果是。

但是,谷歌不会舍入值,因此您只能使用1位乘数。如果你想使用说.85,你必须首先获得255 * .85的舍入值,然后输入 (rounded-value here) to hex 在谷歌搜索。


5
2018-06-11 06:09