Я обычно получаю свои значения argb вручную, используя операции на битовом уровне. Вы можете обернуть это во вспомогательный метод, который возвращает его в виде массива, если это более удобно.
public int[] getColorComponents(int color)
{
int alpha = (color >> 24) & 0xff;
int red = (color >> 16) & 0xff;
int green = (color >> 8) & 0xff;
int blue = color & 0xff;
return new int[] { alpha, red, green, blue };
}
Если вам нужны поплавки, вы можете сделать что-то вроде этого
public float[] getColorComponents(int color)
{
int alpha = (color >> 24) & 0xff;
int red = (color >> 16) & 0xff;
int green = (color >> 8) & 0xff;
int blue = color & 0xff;
float a = (float) alpha / 255;
float r = (float) red / 255;
float g = (float) green / 255;
float b = (float) blue / 255;
return new float[] { a, r, g, b };
}
Если вы делаете это много раз (например, проходите по пикселям в растровом изображении), вы, вероятно, захотите использовать один массив и передать его, заменяя значения в методе вместо создания нового массива.