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