hex透明度的颜色

我正在为我的应用程序小部件实施wigdget透明度选项,虽然我有一些麻烦得到正确的hex颜色值。 对于hex颜色透明度来说,这是一个全新的东西,我search了一下,虽然我找不到具体的答案。

我想通过hex颜色设置透明度,所以我们说我的hex颜色ID“#33b5e5”,我希望它是50%透明。 那么我会用“#8033b5e5”,因为80是50%。

我在这里find了一个有用的图表: 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 

现在问题开始出现,当我得到高于100hex。 hex颜色代码只能是8个符号长的权利? 例如#11233b5e5(80%)崩溃。

我能做些什么来使我能够使用更高的数字?

这是一个正确的百分比表格。 例如,对于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

( 来源 )

一位同事要求我计算阿尔法透明度。

问题是一个简单的交叉乘法http://en.wikipedia.org/wiki/Cross-multiplication

如何计算?


hex值为百分比

百分比=(十进制值)/ 255 * 100

B4的透明度百分比是多less? B4在hex是180 。

所以180/255 * 100 = 70,5%

百分比到hex值

十进制=百分比/ 100 * 255

什么是80%的hex?

80/100 * 255 = 204 。 hex值204是CC


我喜欢教如何find解决scheme,而不是交桌子

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

颜色hex表示法如下所示:#AARRGGBB

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

你应该先看看hex是如何工作的。 你最多可以写FF。

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

hex数是基数为16,所以每个数字是一个介于0和F之间的值。两个字节的hex值(如颜色的透明度)的最大值是0xFF或十进制的255。 因此100%是0xFF。

在这里输入图像描述

这可能是很晚的答案..但是这张图杀死了它。

所有百分比值都映射到hex值。

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

我为android应用程序构build了这个小帮手方法,可能会用到:

  /** * @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; } 

尝试谷歌search(或点击这里 )

255 * .2 to hex

它会产生0x33

但是,谷歌没有四舍五入值,所以你只能使用1位乘数。 如果你想使用.85,你必须首先获得255 * .85的(rounded-value here) to hex ,然后在谷歌search中键入(rounded-value here) to hex

使用python来计算,例如(用python 3编写),50%的透明度:

 hex(round(256*0.50)) 

🙂

我意识到这是一个古老的问题,但是当我做类似的事时,我碰到了它。

使用SASS,您可以将RGBA转换为hexARGB: ie-hex-str 。 我在这里用mixin。

 @mixin ie8-rgba ($r, $g, $b, $a){ $rgba: rgba($r, $g, $b, $a); $ie8-rgba: ie-hex-str($rgba); .lt-ie9 &{ background-color: transparent; filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#{$ie8-rgba}', endColorstr='#{$ie8-rgba}'); } } .transparent{ @include ie8-rgba(88,153,131,.8); background-color: rgba(88,153,131,.8); } 

输出:

 .transparent { background-color: rgba(88, 153, 131, 0.8); } .lt-ie9 .transparent { background-color: transparent; filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#CC589983', endColorstr='#CC589983'); zoom: 1; } 

我总是不停地来这里检查int / hex alpha值。 所以,最后在我的java utils类中创build一个简单的方法。 此方法将百分比转换为hex值并追加到颜色代码string值。

  public static String setColorAlpha(int percentage, String colorCode){ double decValue = ((double)percentage / 100) * 255; String rawHexColor = colorCode.replace("#",""); StringBuilder str = new StringBuilder(rawHexColor); if(Integer.toHexString((int)decValue).length() == 1) str.insert(0, "#0" + Integer.toHexString((int)decValue)); else str.insert(0, "#" + Integer.toHexString((int)decValue)); return str.toString(); } 

所以, Utils.setColorAlpha(30, "#000000")会给你#4c000000