有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java css风格的十六进制字符串和颜色。解码

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”格式的字符串转换为java awt颜色的最佳方式是什么


共 (3) 个答案

  1. # 1 楼答案

    我在安卓系统中寻找类似的方法。由于某种原因,我找不到Color.decode(),所以我寻找了另一种选择。如果希望在Android中使用十六进制字符串表示颜色,可以执行以下操作:

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

    更多信息请访问Color#parseColor

  2. # 2 楼答案

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

    或者

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

    或者

    Color c = new Color(0xFF0096);
    
  3. # 3 楼答案

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

    不带前缀00x的字符串“FF0096”将被解释为以10为基数的表示法,该表示法不起作用