提问




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

    

            

  •             了解Android上的颜色(六个字符)
                    
                        7个答案
                    
            

  •     

最佳参考


这是一个十六进制值百分比的正确表格。例如50%白色你用#80FFFFFF。/questions/5445085/understanding-colors-on-android-six-characters



  • 100% - FF

  • 95% - F2

  • 90% - E6

  • 85% - D9

  • 80% - CC

  • 75% - BF

  • 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



(源)

其它参考1


简短回答



您可以在https://play.golang.org/p/l1JaPYFzDkI中查看完整的百分比表到十六进制值,并运行此操场中的代码。[14]


伪代码

的简短说明

十六进制值的百分比




  1. 十进制 =百分比* 255/100。例如:十进制= 50 * 255/100=127.5

  2. 十进制转换为十六进制值。例如:十进制127.5=7 * 161 + 15 =十六进制7F



十六进制值为百分比




  1. 将hexaxdecimal值转换为decimal。例如:D6=13 * 161 + 6=214

  2. percentage =(十进制值)* 100/255。例如:214 * 100/255=84%



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


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



这个问题可以通过交叉乘法来解决。 [16]


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



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

  • 0< ==> 0(十六进制为00)



1%



  • 1 * 255/100=2,5

  • 2,5 in hexa 2 如果你将其四舍五入。



2%



  • 2 * 255/100=5

  • 5 in hexa 5



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


如何计算你头脑中的数字?由于 2.5 增量,将第2个添加到第一个,将3添加到下一个



  • 95% - F2//开始

  • 96% - F4//将2添加到F2

  • 97% - F7//加3。或F2 + 5=F7

  • 98% - F9//添加2

  • 99% - FC//添加3. 9 + 3=12 in hexa:C

  • 100% - FF//添加2






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



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


其它参考2


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



  • A:alpha

  • R:red

  • G:绿色

  • B:蓝色



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

其它参考3


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


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

其它参考4


我为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;
}

其它参考5





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


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


http://online.sfsu.edu/chrism/hexval.html[18]

其它参考6


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


255 * .2 to hex


结果会产生0x33


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

其它参考7


我意识到这是一个老问题,但我在做类似的事情时遇到过它。


使用SASS,您可以非常优雅地将RGBA转换为十六进制ARGB:ie-hex-str。我在这里用它来混合。


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



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


hex(round(256*0.50))


:)

其它参考8


我总是来这里检查int/hex alpha值。因此,最终在我的java utils类中创建一个简单的方法。此方法将百分比转换为十六进制值并附加到颜色代码字符串值。


 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