六角透明的颜色

Swe*_*now 1219 transparency android hex colors

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

我想用十六进制颜色设置透明度,所以让我说我的十六进制颜色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
Run Code Online (Sandbox Code Playgroud)

现在,当我以十六进制高于100时问题开始出现.十六进制颜色代码只能长8个符号吗?例如#11233b5e5(80%)崩溃.

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

Ben*_*ton 3537

这是一个十六进制值百分比的正确表.例如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

(来源)

  • @serhio 100%是稳固的.#FFFFFFFF (11认同)
  • 这是 OPACITY 的列表;问题是要求透明度。要修复,只需反转表格即可。 (3认同)
  • 我很欣赏 OP 有 android 标签,但是如果您使用扩展程序,这个证明在 iOS 中也很有用。无论如何,评论的原因是,如果您在导航栏上使用半透明颜色,那么也使用 85% 来匹配 UIStatusbar 的颜色。https://github.com/jwknz/UIColor-Hex-Swift (2认同)

Ray*_*non 130

简短的回答

您可以在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
  • 如果你向下舍入,则hex中的2,5是2.

2%

  • 2*255/100 = 5
  • hexa中的55.

最佳答案中的表格给出了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

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

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


erk*_*gur 39

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

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

您应该首先看看十六进制是如何工作的.你最多可以写FF.


Tan*_*.7x 22

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

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


dwb*_*ito 18

我为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;
}
Run Code Online (Sandbox Code Playgroud)


ama*_*Bit 17

在此输入图像描述

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

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

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


chj*_*der 7

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

255 * .2 to hex

它会产生0x33结果.

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