Похоже, что Формат пикселей RGBA довольно хорошо задокументирован, и я предполагаю, что это означает, что документы для Android, просто используя другое имя, чтобы соответствовать позиции членства канала в битовом поле:*
Примерно так должно работать:
int createPixel(int r, int g, int b) {
return createPixel(r, g, b, 0xff);
}
int createPixel(int r, int g, int b, int a) {
return (a<<24) | (r<<16) | (g<<8) | b;
}
Кроме того, вы можете использовать byte
вместо int
, чтобы избежать переполненияошибки или маскируйте только те биты, которые вам нужны:
int createPixel(int r, int g, int b, int a) {
return ((a & 0xff) << 24)
| ((r & 0xff) << 16)
| ((g & 0xff) << 8)
| ((b & 0xff));
}
Хотя ограничение значений на [0,255]
может иметь больше смысла.