我有顏色的String.xml文件中像這樣<color name="ItemColor1">#ffff992b</color>
我怎麼能轉換成是四個變量如何從十六進制轉換顏色爲RGB
float Red;
float Green;
float Blue;
float Alfa;
在Java代碼中
?任何一個可以幫助
我有顏色的String.xml文件中像這樣<color name="ItemColor1">#ffff992b</color>
我怎麼能轉換成是四個變量如何從十六進制轉換顏色爲RGB
float Red;
float Green;
float Blue;
float Alfa;
在Java代碼中
?任何一個可以幫助
int color=getResources().getColor(R.color.ItemColor1);
float red= (color >> 16) & 0xFF;
float green= (color >> 8) & 0xFF;
float blue= (color >> 0) & 0xFF;
float alpha= (color >> 24) & 0xFF;
我假設你正在使用ARGB(第2個字符是字母),移值會有所不同使用RGBA。 doc表示它是ARGB。
請看看
How to get RGB value from hexadecimal color code in java
int color = Integer.parseInt(myColorString, 16);
int r = (color >> 16) & 0xFF;
int g = (color >> 8) & 0xFF;
int b = (color >> 0) & 0xFF;
你也可以使用[紅色,綠色,藍色] Color類的功能:
int color = getResources().getColor(R.color.youcolor);
int r = Color.red(color);
int g = Color.green(color);
int b = Color.blue(color);
替換謝謝Nicholas! – ramonesteban78
我覺得這更可讀。 – clay
更新與ContextCompat爲的getColor已被棄用。
int color = ContextCompat.getColor(mContext, R.color.colorAccent);
float red = (color >> 16) & 0xFF;
float green = (color >> 8) & 0xFF;
float blue = (color) & 0xFF;
float alpha = (color >> 24) & 0xFF;
希望它會有用。
非常感謝你 – AnasBakez
in blue'(color >> 0)'可以用'(color)' –