【发布时间】:2022-01-22 16:15:03
【问题描述】:
public static int getARGB(final int red, final int green, final int blue, final int alpha) {
int argb = (alpha<<24)|(red<<16)|(green<<8)|blue;
return argb;
}
所以我必须将不同的颜色整数转换为 argb 值。我的做法对吗?
【问题讨论】:
-
你忘了应用(
0xFF000000掩码可选到alpha的移位结果:最左边的位将被丢弃,最右边的位将为零)0xFF0000到red的移位结果,0xFF00到绿色的移位结果,0xFF到blue的移位结果。如果我还记得位数学是如何工作的。 :D -
您需要检查这些值是否在 [0, 255) 中。如果是,那么你的实现是正确的。