80,354
社区成员
发帖
与我相关
我的任务
分享
@ColorInt
public static int rgb(
@IntRange(from = 0, to = 255) int red,
@IntRange(from = 0, to = 255) int green,
@IntRange(from = 0, to = 255) int blue) {
return 0xff000000 | (red << 16) | (green << 8) | blue;
}
这表示你得到的int color实际上是将原来的16进制表示成了int型的,在计算机原理中,一个颜色有0-255,16进制表示的话占用两位,二进制表示占用八位。因此三种颜色占用了24位,再加上透明度,则占用了32位。刚好一个Int型的数值也是32位。因此可以把一个RBG颜色表示为int 型。但是注意,int型虽然是32位表示,但是有一位表示为正负,实际上只有32位表示数值。 因此你用Color.rgb()得到的一个Int数值,有可能为一个负数。