Android 中的十六进制颜色有时是八位数字。如何? #FFFFFF 和 #FFFFFF00 有什么区别?
我有时在示例中看到 Android 中的着色是作为#FF191919 完成的。我的意思是八位十六进制数字。但它应该只是一个六位数。它们有何关系?
如果我想将六位数字转换为八位数字,我该怎么做?我的意思是将#424242 转换为八位数字着色?详情为何?
I sometimes have seen in examples where the coloring in Android is done as #FF191919. I mean an eight-digit hex number. But it should only be a six-digit number. How are they related?
If I want to convert a six-digit number to a eight-digit number, how can I do it? I mean convert #424242 to a eight-digit number coloring? What are the the details?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
前两个字符代表 alpha(透明度)值,其中 FF 完全可见。这称为 ARGB。
The first two characters represent the alpha (transparency) value, where FF is fully visible. This is known as ARGB.
八位十六进制值是 ARGB 颜色。它与通常的 RGB 相同,但它提供了一个额外的 Alpha 通道。
RGB 中的#RRGGBB 与 ARGB 中的
#00RRGGBB
相同。另请查看 颜色.argb。The eight-digit hexadecimal value is an ARGB color. It is the same as the usual RGB, but it provides an extra alpha channel.
#RRGGBB in RGB is the same as
#00RRGGBB
in ARGB. Also take a look at Color.argb.八位 Android 十六进制值称为 ARGB。 ARGB 值通常使用八个十六进制数字表示,每对十六进制数字分别代表 alpha、红色、绿色和蓝色通道的值。例如,80FFFF00 表示 50.2% 不透明(非预乘)黄色。
十六进制值 80(十进制为 128)表示 50.2% 的 alpha 值,因为 128 约为最大值 255(十六进制FF)的 50.2%;继续破译80FFFF00值,第一个FF代表红色可以有的最大值;第二个 FF 与前一个类似,但为绿色;最终的 00 代表蓝色可以具有的最小值(实际上 - 没有蓝色)。
因此红色+绿色产生黄色。在不使用 alpha 的情况下,可以将其缩短为六位数字,RRGGBB,这就是选择将 alpha 放在最高位的原因。根据上下文,在十六进制数字之前放置 0x 或数字符号 #。
An eight-digit Android hexadecimal value is called an ARGB. ARGB values are typically expressed using eight hexadecimal digits, with each pair of the hexadecimal digits representing the values of the alpha, red, green and blue channel, respectively. For example, 80FFFF00 represents 50.2% opaque (non-premultiplied) yellow.
The 80 hexadecimal value, which is 128 in decimal, represents a 50.2% alpha value because 128 is approximately 50.2% of the maximum value of 255 (FF hexadecimal); to continue to decipher the 80FFFF00 value, the first FF represents the maximum value red can have; the second FF is like the previous, but for green; the final 00 represents the minimum value blue can have (effectively – no blue).
Consequently red + green yields yellow. In cases where the alpha is not used, this can be shortened to six digits, RRGGBB, and this is why it was chosen to put the alpha in the top bits. Depending on the context, a 0x or a number sign, #, is put before the hexadecimal digits.
八位颜色由 Alpha 级别定义。
让我们全部提取出来。我们将十六进制颜色定义为每对两位 RGB 的六个值对。
现在,如果您想设置其 alpha 级别,则使用八位数字将其定义为 ARGB< /a>.
所以现在前两位数字值定义 alpha,其余数字定义 RGB。
The eight-digit color is defined with an alpha level.
Let’s extract all. We define the hexadecimal color as six value pairs of RGB two digits per pair.
Now if you want to set the alpha level of that then it is defined with the eight digits as ARGB.
So now the first two digit values define the alpha and the rest are for the RGB.
八位十六进制表示法与六位十六进制表示法的工作方式相同,因为您提供一个六位十六进制值,并以井号 (#) 符号为前缀。
不同之处在于,八位数字表示法,顾名思义,多了两位数字。这两位数字代表颜色的 Alpha 通道。
Alpha 通道由最后两位数字表示。
最后一对数字被解释为十六进制数字(就像其他数字一样)。值
00
表示完全透明的颜色,值FF
表示完全不透明的颜色。因此,对于完全不透明的颜色,请执行以下操作:
Color(0xFF)
例如,如果您有 6 位代码:
E64526
现在将其转换为 8 位代码:
Color(0xFFE64526)
Eight-digit hex notation works the same as the six-digit notation, in that you provide a six-digit hexadecimal value, prefixed with a hash (#) symbol.
The difference is, eight-digit notation, as the name suggests, adds two more digits. These two digits represent the alpha channel of the color.
The alpha channel is represented by the last two digits.
This last pair of digits are interpreted as a hexadecimal number (just like the other digits). A value of
00
represents a fully transparent color, and a value ofFF
represents a fully opaque color.So for a fully opaque color do this :
Color(0xFF<your-6digit-code>)
For example, if you have a 6 digit code:
E64526
Now convert it to an 8 digit code with:
Color(0xFFE64526)
额外的两位数字用于定义颜色的透明度或 Alpha 通道。
Android 使用 ARGB 格式(或您在示例中使用的 AARRGGBB)。
有关更多(Android 特定)信息,请查看 颜色文档。
The extra two digits are used to define the colors' transparency, or alpha channel.
Android uses the ARGB format (or AARRGGBB as you use in your example).
For more (Android-specific) information, take a look at the Color documentation.