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

问题描述 投票:0回答:5

我需要获取颜色的字符串值。换句话说,我想从字符串格式的

#ffffffff
等颜色资源中提取
<color name="color">#ffffffff</color>
。有什么办法可以做到这一点吗?

android string colors
5个回答
18
投票

假设你有:

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

这是代码:

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

4
投票

如果您只需要十六进制值(不带 alpha):

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

3
投票

您将无法提取 XML 的原始源文本。它在构建时转换为二进制值。 (例如,

#fff
#ffffffff
之间的差异被删除了。)

当然,您可以使用

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


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

来自:Android获取颜色作为字符串值


0
投票

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

这也将处理 alpha 值

© www.soinside.com 2019 - 2024. All rights reserved.