Android中的十六进制颜色有时为8位数字。怎么样?#FFFFFF和#FFFFFF00有什么区别


81

我有时在示例中看到Android的着色为#FF191919。我的意思是8位十六进制数字。但是它只能是一个6位数字。它们有什么关系?如果我想o将6位数字转换为8位数字。怎么做?我的意思是将#424242转换为8位数字的颜色?请让我知道细节。感谢您的时间和帮助。

Answers:


104

多余的2位数字用于定义颜色透明度或alpha通道。

Android使用ARGB格式(或您在示例中使用的AARRGGBB)

有关更多(特定于Android的)信息,请参阅颜色文档


是否有一个好的程序可以使用所有8位数字输入后向您显示颜色?
anon58192932

有很多:任何具有自尊心的绘图应用程序都接受RGBA输入并显示最终的颜色。或搜索“ rgb拾色器”或“ rgb色轮”以找到提供此服务的网站。(请注意:字母数字并不是很有趣,因为它们定义了透明度并且不会影响颜色)
Veger 2012年

1
单靠答案并不清楚,那两个额外的数字。前两个?最后两个?中间的两位数字?
Abhishek Jain

“额外的2位数字”建议在后面加上(所以最后两位),但我将更新答案以使其明确且正确
Veger

46

前两个字符代表alpha(透明度)值,在此FF位置完全可见。这称为aRGB。


1
因此例如#FF000000与相同#000000,只是纯黑色?
Bruno Finger

14

8位十六进制是ARGB颜色。它与通常的RGB相同,但是提供了一个额外的alpha通道。

#RRGGBBRGB中的与#00RRGGBBARGB中的相同。还要看看Color.argb


9

8位Android HEx称为aRGB。aRGB值通常使用8个十六进制数字表示,每对十六进制数字分别代表Alpha,Red,Green和Blue通道的值。例如80FFFF00代表50.2%的不透明(未预乘)黄色。80十六进制值(十进制为128)表示50.2%的alpha值,因为128大约是最大值255(FF hex)的50.2%。为了继续解密80FFFF00值,第一个FF表示red可以具有的最大值;第二个FF与前面的FF类似,但绿色。最后的00代表蓝色可以具有的最小值(有效–无蓝色)。因此,红色+绿色产生黄色。在不使用字母的情况下,可以将其缩短为RRGGBB的6位数字,这就是为什么选择将字母放在最高位的原因。


8

8位数字用Alpa级别定义

让我们提取所有我们将十六进制颜色定义为rgb的6个值对,每个2位

现在,如果要设置红色的第一个2位红色,绿色的第二个2位和蓝色的第二个2位,则将其8位数字定义为ARGB,因此,现在为Alpha和其余的用于RGB

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.