css样式的十六进制字符串和Color.decode

时间:2010-02-26 07:06:52

标签: java colors hex

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的最佳方法是什么?

3 个答案:

答案 0 :(得分:46)

Color c = Color.decode("0xFF0096");

Color c = Color.decode("#FF0096");

Color c = new Color(0xFF0096);

答案 1 :(得分:9)

如果指定的字符串不能解释为十进制,八进制或十六进制整数,则Color.decode方法抛出NumberFormatException

字符串“FF0096”没有前缀00x将被解释为基本10表示,但不起作用。

答案 2 :(得分:1)

我在Android中寻找类似的方法。出于某种原因,我无法找到Color.decode()所以我寻找替代方案。如果要在Android中使用十六进制字符串表示颜色,可以执行以下操作:

String hexColor = "#142b44";
View row = findViewById(R.id.row);
int color = Color.parseColor(hexColor);
row0.setBackgroundColor(color);

更多this page