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

Java 如何从颜色中提取ARGB并将其转换为字节组件?,java,android,Java,Android,我在Java/Android中工作,我想使用0xFFFFFFFFint颜色,并将其分成4个字节,分别为红色、绿色、蓝色和alpha。我知道Color有提取特定颜色值的方法,但它将它们作为int提供。我浏览了SDK,发现Color.red(Color)方法与说(Color>>16)&0xFF是一样的,老实说,我不知道这意味着什么,但我想我可以在某种程度上使用它 我试过了 byte red = (byte)Color.red(color); 但这似乎不起作用。整个要点是,我可以使用该方法将值输入到

我在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是一个字节[]


任何帮助/提示/要点都将不胜感激。

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

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

我知道它由字节组成,但我在将其拆分为4个字节(argb)时遇到问题。除了将int转换成字符串然后再转换回字节之外,没有其他方法了吗?这似乎比应该需要的工作量大得多。请尝试将所有颜色进行位移位,如redI。我知道它由字节组成,但我在将其拆分为4个字节(argb)时遇到问题。除了将int转换成字符串然后再转换回字节之外,没有其他方法了吗?这似乎需要做的工作太多了。试着改变所有的颜色,比如红色