Java 如何将带符号整数解码为其RGB值
我有一个数字代表Android中的一种颜色(据我所知,它被称为有符号整数,因为Java没有无符号整数?) 我相信这对应于十六进制的颜色,它看起来是一个透明度设置为0%的黄色Java 如何将带符号整数解码为其RGB值,java,android,Java,Android,我有一个数字代表Android中的一种颜色(据我所知,它被称为有符号整数,因为Java没有无符号整数?) 我相信这对应于十六进制的颜色,它看起来是一个透明度设置为0%的黄色 0xffffff00 我尝试将-256转换为其RGB值,并将字节加载到数组中 byteArr[0] = (byte) ((color >> 16) & 0xFF); byteArr[1] = (byte) ((color >> 8) & 0xFF); byteArr[2] =
0xffffff00
我尝试将-256
转换为其RGB值,并将字节加载到数组中
byteArr[0] = (byte) ((color >> 16) & 0xFF);
byteArr[1] = (byte) ((color >> 8) & 0xFF);
byteArr[2] = (byte) ((color >> 0) & 0xFF);
当我打印得到的字节的字符串值时
String.valueOf(byteArr[0]); // prints -1
String.valueOf(byteArr[1]); // prints -1
String.valueOf(byteArr[2]); // prints 0
我希望RGB值为黄色
String.valueOf(byteArr[0]); // should print 255
String.valueOf(byteArr[1]); // should print 255
String.valueOf(byteArr[2]); // should print 0
有谁能帮我把RGB值转换成-256
的实际值,并帮我了解发生了什么
谢谢您可以像这样对RGB颜色进行编码和解码
// sRGB
Color opaqueRed = Color.valueOf(0xffff0000); // from a color int
Color translucentRed = Color.valueOf(1.0f, 0.0f, 0.0f, 0.5f);
有关更多详细信息,请参见。字节也有符号…为什么
String.valueOf((byte)Color.blue(-11922228))
打印-52
其中String.valueOf((byte)Color.red(-11922228))
打印74
?是不是74
红色分量没有签名,而-52
是有签名的蓝色分量?如何获取未签名的蓝色组件?
// sRGB
Color opaqueRed = Color.valueOf(0xffff0000); // from a color int
Color translucentRed = Color.valueOf(1.0f, 0.0f, 0.0f, 0.5f);