this article建议您可以使用Color c = Color.decode("FF0096");
,但这可以理解地抛出异常
Caused by: java.lang.NumberFormatException: For input string: "FF0096"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:449)
at java.lang.Integer.valueOf(Integer.java:528)
at java.lang.Integer.decode(Integer.java:958)
at java.awt.Color.decode(Color.java:707)
将“#FF0096”或“FF0096”格式的String转换为java awt Color的最佳方法是什么?
答案 0 :(得分:46)
Color c = Color.decode("0xFF0096");
或
Color c = Color.decode("#FF0096");
或
Color c = new Color(0xFF0096);
答案 1 :(得分:9)
如果指定的字符串不能解释为十进制,八进制或十六进制整数,则Color.decode方法抛出NumberFormatException
字符串“FF0096”没有前缀0
或0x
将被解释为基本10表示,但不起作用。
答案 2 :(得分:1)
我在Android中寻找类似的方法。出于某种原因,我无法找到Color.decode()
所以我寻找替代方案。如果要在Android中使用十六进制字符串表示颜色,可以执行以下操作:
String hexColor = "#142b44";
View row = findViewById(R.id.row);
int color = Color.parseColor(hexColor);
row0.setBackgroundColor(color);