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
?
Ответы
Ответ 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
, который представляет различные основные цвета
Ответ 4
Я думаю, что это должно быть R.color.black
Также посмотрите Преобразование строки цвета андроида во время выполнения в int
Ответ 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
Надеюсь, это поможет! Наслаждайтесь кодированием!