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.
(来源)
Ray*_*non 130
您可以在https://play.golang.org/p/l1JaPYFzDkI中查看十六进制值的完整百分比表并在此操场中运行代码.
这个问题可以通过交叉乘法来解决.
我们有一个百分比(范围从0到100)和另一个数字(范围从0到255)然后转换为十六进制.
1%
2%
最佳答案中的表格给出了5%的逐步百分比.
如何计算你头脑中的数字?由于2.5增量,第一个加2,下一个加3
我更喜欢教如何找到解决方案而不是交桌子
给一个人一条鱼,你喂他一天; 教一个人钓鱼,你喂他一辈子
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)