我使用ImageView
从OnTouchListener
采取颜色。
可以成功获得红色,绿色,蓝色代码,但我无法将RGB转换为HEX ..
例如:我的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();
解:
只需使用:
String hex = String.format("#%02x%02x%02x", redValue, greenValue, blueValue);
这会将所有红色,绿色和蓝色值转换为十六进制字符串。
希望能帮助到你。
使用Integer.toHexString(color);
将整数转换为十六进制字符串。
例:
int color = 0xff334433;
String hex = Integer.toHexString(color);
System.out.println(hex); // this prints - ff334433
您将错误的参数发送到String.format函数以获取hexColor。
试试这个:
String hexColor = String.format("#%06X", redValued, greenValue, blueValue);