将int值转换为res / color

时间:2015-10-01 11:06:42

标签: android colors android-resources

这可能是一个非常具体的问题,因为我找不到任何相关内容。 另外,对不起,如果我找不到更好的标题。

我正在使用android颜色,特别是,我需要让用户以编程方式更改视图的颜色。

我会给出一些价值观和榜样,以便你能更好地理解我的情况。

在我的res/colors.xml中,我的color_green值为#4CAF50。 活动开始后,我将此颜色设置为视图。 为了设置颜色,我首先将它转换为String hex颜色:

int color = myGreenColor; // This is directly taken from resource so R.color.green_color, (2131427355)
int value = ContextCompat.getColor(context, color); // (-11751600)
String hexColor = String.format("#%06X", (value)); // (#FF4CAF50)

然后我用

将其设置为视图

mView.setBackgroundColor(Color.parseColor(hexColor)); //(-11751600)再次

现在,当用户从找到的at this link

的pes8 myGreenColor库中选择另一种颜色时,ColorPicker值会发生变化

假设我选择了与R,G,B整数中传递给库的构造函数完全相同的值。

如果我从对话框中打印返回的值,我会得到类似

的内容
-11751600.

我无法适应任何setparse或其他方法。 也就是说,如何转换此值才能使用之前的转换?

我需要将格式-11751600转换为格式2131427355。或任何其他中间步骤值。

真的很感激任何帮助。

1 个答案:

答案 0 :(得分:1)

如果您有RGB值,可以直接执行以下操作:

String color = "#" + RR + GG + BB;

然后使用

将此颜色设置为您的视图
mView.setBackgroundColor(Color.parseColor(color))

Color.parseColor(String)支持#RRGGBB #AARRGGBB格式颜色。您可以在此处查看文档Android documentation