十六进制字符串到int转换无法正常工作

BBB*_*BBB 2 java android hex

我有一个存储在字符串中的十六进制数字(颜色),如下所示:"ff62e6b8".我需要将其转换回整数,以便我可以再次将其用作颜色值.我尝试过以下方法:

Int i = Integer.parseInt("ff62e6b8", 16);
Int i = Integer.valueOf("ff62e6b8", 16);
Int i = Integer.decode("ff62e6b8");
Run Code Online (Sandbox Code Playgroud)

但所有这些方法都会引发异常.我在这里错过了什么吗?

Ada*_*der 8

FF62E6B8的小数为4284671672.它只是大到很大int.在int你可以存储匹配的范围内,其值<-2^31 - 1 ; 2^31 - 1>.尝试使用long:

Long i = Long.parseInt("ff62e6b8", 16);
Long i = Long.valueOf("ff62e6b8", 16);
Long i = Long.decode("ff62e6b8"); 
Run Code Online (Sandbox Code Playgroud)


Pra*_*rma 5

试试这个:

int colorVal = Color.parseColor("#ff62e6b8");
Run Code Online (Sandbox Code Playgroud)

示例:

myLayout.setBackgroundColor(Color.parseColor("#ff62e6b8"));
Run Code Online (Sandbox Code Playgroud)

通过这个,你会得到colorVal = -10295624.

如果你想从colorVal生成hexColor代码,那么使用:

String hexColor = String.format("#%06X", (0xFFFFFF & colorVal));
Run Code Online (Sandbox Code Playgroud)

通过这个,你会得到hexColor = #62E6B8.

谢谢.