如何在我的活动中获得颜色资源的值

时间:2011-05-26 19:57:14

标签: android string colors

我需要获取颜色的字符串值。换句话说,我想以字符串格式从#ffffffff这样的颜色资源中提取<color name="color">#ffffffff</color>。有没有办法做到这一点?

4 个答案:

答案 0 :(得分:18)

假设你有:

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

这是代码:

int greenColor = getResources().getColor(R.color.green);
String strGreenColor = "#"+Integer.toHexString(greenColor);

答案 1 :(得分:4)

如果您只需要HEX值(不含alpha):

int intColor = getResources().getColor(R.color.your_color);
String hexColor = String.format("#%06X", (0xFFFFFF & intColor));

答案 2 :(得分:3)

您将无法提取XML的原始源文本。在构建时将其转换为二进制值。 (例如,#fff#ffffffff之间的差异将被删除。)

您可以使用Integer.toHexString(int)将颜色值转换为十六进制字符串。

答案 3 :(得分:0)

Integer.toHexString(ContextCompat.getColor(context, R.color.black) & 0x00ffffff);

来自:Android get color as string value