spierce7
05/09/2022, 9:02 PMcolorString.removePrefix("#").toInt(16)
Kirill Grouchnikov
05/09/2022, 9:12 PMThomas
05/09/2022, 9:59 PMspierce7
05/10/2022, 1:34 AMspierce7
05/10/2022, 1:40 AMColor
assumes ARGB.
I ended up just making the following function:
fun String.hexStringToColor(): Color {
val colorString = removePrefix("#")
val argb = colorString.toUInt(16)
val b: Int = (argb and 0xFFu).toInt()
val g: Int = (argb shr 8 and 0xFFu).toInt()
val r: Int = (argb shr 16 and 0xFFu).toInt()
val a: Int = (argb shr 24 and 0xFFu).toInt()
return when (colorString.length) {
6 -> Color(red = r, green = g, blue = b)
8 -> Color(red = r, green = g, blue = b, alpha = a)
else -> throw IllegalArgumentException("Unexpected hex color value in String: '$this'")
}
}
Thomas
05/10/2022, 1:45 AMspierce7
05/10/2022, 1:46 AMspierce7
05/10/2022, 1:55 AMUInt.MAX_VALUE == 0xFFFFFFFFu
First time I’ve ever found a use for UInt in my code 😛