I have some sliders in my application that allows the user to change ARGB colors, however I need to convert these values to a hex value like 0xff000000, which is solid black
The problem is that you are including alpha values.
So your maximum color code is #FFFFFFFF
(8 digits).
The method Integer.parseInt
will let you parse value from -0x80000000
to 0x7FFFFFFF
. In order to get your value 0xCC999999
from it, you would have to negate the value and input -0x33666667
- which is of course not useful at all.
The clunky but stable workaround is using Long
.
(int) Long.parseLong(text, 16)
The Color parameters must be floats between 1f and 0f. So this is a valid color:
int color = toHex(new Color(1f, 1f, 1f, 1f));
Which is white.