如何将颜色从十六进制转换为RGB

时间:2012-05-15 11:55:56

标签: android colors

我在String.xml文件中有颜色,如<color name="ItemColor1">#ffff992b</color> 我怎么能转换成四个变量

float Red;
float Green;
float Blue;
float Alfa;
Java代码中的

?任何人都可以提供帮助

4 个答案:

答案 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;

希望它有用。