我在String.xml文件中有颜色,如<color name="ItemColor1">#ffff992b</color>
我怎么能转换成四个变量
float Red;
float Green;
float Blue;
float Alfa;
Java代码中的?任何人都可以提供帮助
答案 0 :(得分:14)
您还可以使用Color类的[红色,绿色,蓝色]功能:
int color = getResources().getColor(R.color.youcolor);
int r = Color.red(color);
int g = Color.green(color);
int b = Color.blue(color);
答案 1 :(得分:9)
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个字符是alpha),使用RGBA的移位值会有所不同。
doc表示它是ARGB。
答案 2 :(得分:3)
请看一下
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;
答案 3 :(得分:0)
使用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;
希望它有用。