2015-10-01 42 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