Ответ 1
Прежде всего, android.graphics.Color - это класс, состоящий только из статических методов. Как и почему вы создали новый объект android.graphics.Color? (Это совершенно бесполезно, и сам объект не хранит никаких данных)
Но в любом случае... Я собираюсь предположить, что вы используете какой-то объект, который фактически хранит данные...
Целое число состоит из 4 байтов (в java). Глядя на функцию getRGB() из стандартного java-объекта Color, мы можем видеть java-карты каждого цвета в один байт целого числа в формате ARGB (Alpha-Red-Green-Blue). Мы можем воспроизвести это поведение с помощью специального метода следующим образом:
public int getIntFromColor(int Red, int Green, int Blue){
Red = (Red << 16) & 0x00FF0000; //Shift red 16-bits and mask out other stuff
Green = (Green << 8) & 0x0000FF00; //Shift Green 8-bits and mask out other stuff
Blue = Blue & 0x000000FF; //Mask out anything not blue.
return 0xFF000000 | Red | Green | Blue; //0xFF000000 for 100% Alpha. Bitwise OR everything together.
}
Предполагается, что вы можете каким-то образом получить отдельные компоненты красного, зеленого и синего цвета и что все значения, которые вы передали для цветов, равны 0-255.
Если ваши значения RGB представлены в виде процентного значения с плавающей запятой между 0 и 1, рассмотрим следующий метод:
public int getIntFromColor(float Red, float Green, float Blue){
int R = Math.round(255 * Red);
int G = Math.round(255 * Green);
int B = Math.round(255 * Blue);
R = (R << 16) & 0x00FF0000;
G = (G << 8) & 0x0000FF00;
B = B & 0x000000FF;
return 0xFF000000 | R | G | B;
}
Как утверждали другие, если вы используете стандартный Java-объект, просто используйте getRGB();
Если вы решили правильно использовать класс цвета Android, вы также можете:
int RGB = android.graphics.Color.argb(255, Red, Green, Blue); //Where Red, Green, Blue are the RGB components. The number 255 is for 100% Alpha
или
int RGB = android.graphics.Color.rgb(Red, Green, Blue); //Where Red, Green, Blue are the RGB components.
как утверждали другие... (Вторая функция предполагает 100% альфа)
Оба метода в основном делают то же, что и первый метод, созданный выше.