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。
我为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