Android中的hex颜色有时是8位数字。 怎么样? #FFFFFF和#FFFFFF00有什么区别?

我有时候在Android中着色的例子是#FF191919。 我的意思是一个8位hex数字。 但它应该只是一个6位数字。 他们有什么关系? 如果我想把一个6位数字转换成一个8位数字。 怎么做? 我的意思是转换#424242到8位数字着色? 请让我知道的细节。 感谢您的时间和帮助。

额外的2位数字是透明的,主要用AA(alpha通道)表示。 有关更多信息,请查看Color 文档

前两个字符表示alpha(透明度)值,其中FF是完全可见的。 这被称为aRGB。

8位hex是ARGB颜色。 它和通常的RGB一样,但是提供了一个额外的alpha通道。

RGB中的#RRGGBB与ARGB中的#00RRGGBB相同。 也看看Color.argb 。

8位数颜色定义与alpa水平

让我们提取所有我们定义的hex颜色为6个值每对rgb 2位数

红色的第一个2位数字,绿色的第二个2位数字和蓝色的第二个2位数字现在,如果您想要设置alpha的电平,那么它将以8位数字定义为ARGB,所以现在第一个2位数字被定义为alpha其余的都是RGB

一个8位的Android HEx被称为aRGB。 aRGB值通常用8个hex数字表示,每对hex数字分别表示Alpha,Red,Green和Blue通道的值。 例如,80FFFF00表示50.2%的不透明(非预乘)黄色。 80hex值是十进制数128,代表50.2%的alpha值,因为128大约是最大值255(FFhex)的50.2%; 继续破译80FFFF00的值,第一个FF表示红色可以拥有的最大值; 第二个FF像前一个,但是对于绿色; 最后的00代表蓝色可以有的最小值(有效 – 没有蓝色)。 因此红色+绿色产生黄色。 在不使用alpha的情况下,可以将其缩短为6位RRGGBB,这就是为什么select将alpha放在最高位。 取决于上下文,0x或数字符号(#)[1]放在hex数字之前。