将十六进制颜色值 ( #ffffff ) 转换为整数值

我从服务器接收到十六进制颜色值(以这种形式,黑色为例)#xxxxxx#000000

如何将其转换为整数值?

我试图做一个更六边的结果,但这不是在这里,还有其他建议吗?Integer.valueOf("0x" + passedColor.substring(1, passedColor.length()))0x000000int

我收到一个错误:08-03 21:06:24.673: ERROR/AndroidRuntime(20231): java.lang.NumberFormatException: unable to parse '0x00C8FBFE' as integer

我正在使用Android SDK来实现其功能,该功能需要 - 正如您可能已经猜到的那样 - 一个整数颜色值。setBackgroundColor(int color)

这与这个问题相反:如何在Android中将颜色整数转换为十六进制字符串?


答案 1

真正的答案是使用:

Color.parseColor(myPassedColor)在 Android 中,值类似于 or 或 。myPassedColorhex#000#000000#00000000

但是,此函数不支持速记十六进制值,例如 。#000


答案 2

答案真的很简单,在android中如果你想将十六进制颜色转换为int,只需使用android Color类,示例如下所示

这是浅灰色

Color.parseColor("#a8a8a8");

就是这样,你会得到你的结果。