从十六进制颜色转换为RGB

时间:2015-03-27 15:07:23

标签: java android colors

如何从“#6F00AC”形式的颜色中获取RGB值?

我尝试了这个,但没有奏效

int newcolor = (int)Long.parseLong(String.valueOf(Color.parseColor("#6F00AC")), 16);
    float r = ((newcolor >> 16) & 0xFF) / 255f;
    float g = ((newcolor >> 8) & 0xFF) / 255f;
    float b = ((newcolor >> 0) & 0xFF) / 255f;

1 个答案:

答案 0 :(得分:4)

Color具有静态方法red / blue / green和alpha

int color = Color.parseColor("#6F00AC");
int red = Color.red(color);
int green = Color.green(color);
int blue = Color.blue(color);
int alpha = Color.alpha(color);

它们分别返回颜色int的红色,蓝色,绿色,alpha分量。

编辑:

您的代码几乎正确,(您不需要除以255)

int r = (color >> 16) & 0xFF;
int g = (color >> 8) & 0xFF;
int b = color & 0xFF;