【发布时间】:2017-10-27 09:55:42
【问题描述】:
public static int[] getIntARGB(int argb){
int result[] = new int[4];
result[0] = (argb & 0xff000000) >> 24;
result[1] = (argb & 0x00FF0000) >> 16;
result[2] = (argb & 0x0000FF00) >> 8;
result[3] = (argb & 0x000000FF);
return result;
}
public static int getARBGInt(int a, int r, int g, int b) {
return ((a << 24) | 0xFF) + ((r << 16) | 0xFF) + ((g << 8) | 0xFF) + (b | 0xFF);
}
你知道为什么如果我取一个 argb int 然后分解它并重新放置它,它不会返回相同的值吗?
这两个(或两个)函数中的一个在某种程度上搞砸了,但我不知道为什么(当然,如果之前但如果有是个问题我已经不能工作了x))
【问题讨论】:
-
你不会简单地分解和放置它。想想
| 0xFF在做什么,以及你把这些额外的1s 放在哪里 -
哦,是的,非常感谢我为什么要这样做>