我正在尝试将ARGB十六进制String
解析为int
,但它无效。
我的代码:
int color = Integer.parseInt("ff686868", 16);
例外:
java.lang.NumberFormatException: unable to parse 'ff686868' as integer
at java.lang.Integer.parse(Integer.java:438)
at java.lang.Integer.parseInt(Integer.java:422)
...
当我尝试解析像String
这样的普通RGB 686868
时,它确实有效,但是当我添加alpha时,它就会崩溃。我希望有一个人可以帮助我。
答案 0 :(得分:3)
这个数字对整数来说太大了。
使用:Long.parseLong(..)
答案 1 :(得分:3)
使用java.lang.Long.parseLong()
- int
已签名,因此它只有31位+ 1个符号位,并且您使用所有4 * 8 = 32位。
答案 2 :(得分:3)
您可以使用Color.parseColor(String)
获取int
答案 3 :(得分:0)
Color.parseColor(String);
如果其十六进制代码执行此操作
Color.parseColor("#ffffff");