2015-10-01 43 views
0

这可能是一个非常具体的问题,因为我没有找到任何相关的东西。 另外,对不起,如果我找不到更好的标题。将int值转换为res/color

我正在使用android颜色,具体来说,我处于需要让用户以编程方式更改视图颜色的情况。

我会给出一些值和示例,以便您能更好地理解我的情况。

在我的res/colors.xml我有这个color_green价值#4CAF50。 一旦活动开始,我将这种颜色设置为一个视图。 为了如此设置颜色,我首先将其转换成字符串十六进制颜色为:

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)现在

,该myGreenColor值改变为用户随到随从pes8 ColorPicker库的另一个颜色发现at this link

比方说,我挑,我传递到t值完全相同他是R,G,B ints中图书馆的构造者。

如果我从打印对话框返回值,我得到的东西像

-11751600. 

,我可以不适合放在任何setparse或其他方法。 也就是说,如何转换此值以便与之前的转换一起使用?

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

任何帮助真的不胜感激。

回答

1

如果你有RGB值,您可以直接这样做是为了:

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

然后使用

mView.setBackgroundColor(Color.parseColor(color)) 

Color.parseColor(String)支持#RRGGBB #AARRGGBB格式的颜色设置这个颜色你的看法。您可以在这里查看文档Android documentation