Подтвердить что ты не робот

Android: преобразование цвета в Int

Это может быть глупый вопрос, но я удивлен, что класс Paint не имеет метода setColor(Color c). Я хочу сделать следующее:

public void setColor(Color color) {
/* ... */
Paint p = new Paint();
p.setColor(color); // set color takes only int as a paramter :(
/* ... */
}

Итак, любой простой способ конвертировать Color в int?

4b9b3361

Ответ 1

Любые color проанализируйте простейший путь в int здесь:

1) Получить цвет системы

int redColorValue = Color.RED;

2) Любой цветной шестнадцатеричный код в качестве аргумента строки

int greenColorValue = Color.parseColor("#00ff00")

ДОЛЖЕН ЗАПОМНИТЬ в приведенном выше коде color класс должен быть android.graphics...!

Ответ 2

Все методы и переменные в Color являются статическими. Вы не можете создать экземпляр объекта Color.

Официальные цветные документы

Класс Color определяет методы для создания и преобразования цветовых int.

Цвета представлены как упакованные ints, состоящие из 4 байтов: альфа, красный, зеленый, синий.

Значения не преломляются, то есть любая прозрачность сохраняется только в альфа-компоненте, а не в цветовых компонентах.

Компоненты хранятся следующим образом (alpha < 24) | (красный < 16) | (зеленый < 8) | синий.

Каждый компонент находится в диапазоне от 0..255 до 0, что означает отсутствие вклада для этого компонента, а 255 означает 100% вклад.

Таким образом, непрозрачный-черный будет 0xFF000000 (100% непрозрачный, но без вкладок от красного, зеленого или синего), а непрозрачный-белый будет 0xFFFFFFFF

Ответ 3

R.color.black или некоторый цвет, очевидно, являются целыми числами. Он должен иметь значение RGB. Вы можете дать свой собственный, как #FF123454, который представляет различные основные цвета

Ответ 5

Краска Устанавливает цветовую функцию.

/**
 * Set the paint color. Note that the color is an int containing alpha
 * as well as r,g,b. This 32bit value is not premultiplied, meaning that
 * its alpha can be any value, regardless of the values of r,g,b.
 * See the Color class for more details.
 *
 * @param color The new color (including alpha) to set in the paint.
 */
public native void setColor(@ColorInt int color);

Как разработчик Android, я устанавливаю цвет краски следующим образом:

paint.setColor(getResources().getColor(R.color.xxx));

Я определяю значение цвета на color.xml что-то вроде...

<color name="xxx">#008fd2</color>

Кстати, если вы хотите получить значение шестнадцатеричного RGB определенного значения цвета, вы можете проверить веб-сайт следующим образом: http://www.rapidtables.com/web/color/RGB_Color.htm

Надеюсь, это поможет! Наслаждайтесь кодированием!