我有一个存储在字符串中的十六进制数字(颜色),如下所示:"ff62e6b8".我需要将其转换回整数,以便我可以再次将其用作颜色值.我尝试过以下方法:
Int i = Integer.parseInt("ff62e6b8", 16);
Int i = Integer.valueOf("ff62e6b8", 16);
Int i = Integer.decode("ff62e6b8");
Run Code Online (Sandbox Code Playgroud)
但所有这些方法都会引发异常.我在这里错过了什么吗?
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)
试试这个:
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.
谢谢.
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |