如何从字节数组构造颜色?

时间:2013-07-11 20:31:40

标签: java android

我正在努力完成非常简单的任务(好吧,我想是这样)。 我有byte[4]数组,表示像byte[0] = alpha这样的颜色值, byte [1] = red等等。 如何将此字节数组转换为实际的颜色对象? 谢谢你的回答。

1 个答案:

答案 0 :(得分:10)

Java中的字节是有符号的,所以正部分只能保持值直到127,RGB最高可达255.所以你必须补偿:

byte b = (byte) 130;
int i = b & 0xFF;
System.out.println(i); //Prints 130 again

然后可以将int传递给Color构造函数。

编辑:完整示例:

byte[] values = new byte[] {(byte) 130, (byte) 150, (byte) 200, (byte) 200};
Color color = Color.argb(values[0] & 0xFF, values[1] & 0xFF, values[2] & 0xFF, values[3] & 0xFF);
System.out.println(color + " alpha " + color.getAlpha());