webdevqa.jp.net

cssスタイルの16進文字列とColor.decode

この記事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 Colorに変換する最良の方法は何ですか?

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

または

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

または

Color c = new Color(0xFF0096);
48

私はAndroidでこれを行うための同様の方法を探していました。なんらかの理由でColor.decode()が見つからなかったので、別の方法を探しました。 Androidで色を表すために16進文字列を使用する場合は、次の操作を実行できます。

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

詳細 Color#parseColor

1