Как преобразовать R.color в цвет?
Android имеет 2 типа цветов: R.color и color
В макете используется R.color
(мне нужно holo_blue_light: 17170450 (0x01060012)
)
но функции (такие как setColor()) имеют другой тип ввода int (т.е. CYAN: -16711681 (0xff00ffff)
).
Отрицание R.color
возвращает неправильные цвета. Что делать, чтобы преобразовать их?
Ответы
Ответ 1
Так как getResources().getColor
теперь устарел, вы можете использовать:
ContextCompat.getColor(getResources(), R.color.idOfColour)
старый ответ
Использование
getResources().getColor(R.color.idOfColour);
он возвращает цвет int
, который вы ищете. Если цвет идет с Android, вы можете получить его идентификатор с помощью android.R.color.colourId
Ответ 2
-
Цвет из ресурсов, которые вы получаете через
. GetResources() GetColor (R.color.color_id);
-
Цвет, который вы сохранили из вида (скажем, цвет фона или цвет текста), который будет выглядеть как ваш второй пример, вы можете пройти через
Color.parseColor(цвет строки)
Ответ 3
Почему не пытайтесь выравнивать цвет в режиме fowling
int colorCode = Color.parseColor("#ffffff") ;
setColor(colorCode) ;
Ответ 4
ОБНОВЛЕНИЕ 6 июля 2016 г.
ContextCompat.getColor(context, R.color.your_color);
см. fooobar.com/questions/14240/...
Ответ 5
еще одна вещь, которую я хотел бы добавить
int color_int = ContextCompat.getColor(context, R.color.your_color);
Color colorName = new Color(color_int );
вы можете использовать colorName
, как хотите