как я могу получить значение цветового ресурса в моей деятельности - PullRequest
7 голосов
/ 26 мая 2011

Мне нужно получить строковое значение цвета. Другими словами, я хочу получить #ffffffff из цветового ресурса, например <color name="color">#ffffffff</color> в строковом формате. Есть ли способ сделать это?

Ответы [ 4 ]

18 голосов
/ 27 мая 2011

Если у вас есть:

<color name="green">#0000ff00</color>

А вот и код:

int greenColor = getResources().getColor(R.color.green);
String strGreenColor = "#"+Integer.toHexString(greenColor);
4 голосов
/ 10 декабря 2015

Если вам нужно только шестнадцатеричное значение (без альфа):

int intColor = getResources().getColor(R.color.your_color);
String hexColor = String.format("#%06X", (0xFFFFFF & intColor));
3 голосов
/ 27 мая 2011

Вы не сможете извлечь исходный текст XML.Это преобразуется в двоичное значение во время сборки.(Так, например, разница между #fff и #ffffffff стирается.)

Можно преобразовать значение цвета в шестнадцатеричную строку, конечно, используя Integer.toHexString(int).

0 голосов
/ 09 мая 2017
Integer.toHexString(ContextCompat.getColor(context, R.color.black) & 0x00ffffff);

от: Android получает цвет как строковое значение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...