如何从Color中提取ARGB并将其转换为字节组件?

时间:2011-08-31 01:11:14

标签: java android

我正在使用Java / Android,我想采用0xFFFFFFFF int颜色并将其分为4个字节,分别用于红色,绿色,蓝色和alpha。我知道Color有提取特定颜色值的方法,但它会将它们作为int。我已经浏览了SDK,发现Color.red(color)方法与说(color >> 16) & 0xFF相同,老实说我不知道​​这意味着什么,但我想我可以用某种方式来使用它。

我已经尝试过了

byte red = (byte)Color.red(color);

但这似乎不起作用。重点是,我可以使用方法

将值输入OpenGL
glColorPointer(4, GL_UNSIGNED_BYTE, 4, myColors);

myColors是一个byte []。

非常感谢任何帮助/提示/积分。

1 个答案:

答案 0 :(得分:1)

如果Color有提取特定颜色值的方法,则将Red提取为int,然后将其设为Hex,然后设置为Green,然后设置为Blue。您可能还想提取alpha。使用Integer.toHexString(int),您可以打印int的十六进制值。 (color >> 16) & 0xFF将红色(通过位移和添加)定位到非alpha颜色的6个十六进制数中的前两个。非alpha颜色RBG由3个字节的信息组成。每个字节都是一个颜色,顺序为R(红色)B(蓝色)G(绿色)。 0xFF是一个字节,如果设置为红色意味着颜色有全红等等