将RGB颜色转换为十六进制颜色

时间:2018-09-03 11:03:05

标签: android graphics hex rgb

我正在使用ImageViewOnTouchListener取色。

可以成功获得红色,绿色,蓝色颜色代码,但是我无法将RGB转换为十六进制..

示例:我的rgb值是
r:21

b:16

g:228

当前对应的十六进制颜色为#15e410。

我想得到#15e410。从r:21,b:16,g:228

                int pixel = bitmap.getPixel(x,y);             
                int redValue = Color.red(pixel);
                int blueValue = Color.blue(pixel);
                int greenValue = Color.green(pixel);

                int hexa=  Color.rgb(redValue, greenValue, blueValue);


                Toast.makeText(getApplicationContext(),"hexa ::"+hexa ,Toast.LENGTH_LONG).show();

3 个答案:

答案 0 :(得分:1)

解决方案:

只需使用:

String hex = String.format("#%02x%02x%02x", redValue, greenValue, blueValue);

这会将所有红色,绿色和蓝色值转换为十六进制字符串。

希望有帮助。

答案 1 :(得分:0)

使用Integer.toHexString(color);将整数转换为十六进制字符串。

示例:

int color = 0xff334433;
String hex = Integer.toHexString(color);
System.out.println(hex); // this prints - ff334433

答案 2 :(得分:-1)

您向函数String.format发送错误的参数以获取hexColor。

尝试这个:

String hexColor = String.format("#%06X", redValued, greenValue, blueValue);