Ответ 1
Color c = Color.decode("0xFF0096");
или
Color c = Color.decode("#FF0096");
или
Color c = new Color(0xFF0096);
в этой статье предлагается использовать 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 c = Color.decode("0xFF0096");
или
Color c = Color.decode("#FF0096");
или
Color c = new Color(0xFF0096);
Метод Color.decode выдает NumberFormatException если указанная строка не может быть интерпретирована как десятичное, восьмеричное или шестнадцатеричное целое число
Строка "FF0096" без префикс 0
или 0x
будет интерпретироваться как базовое 10-представление, которое не работает.
Я искал аналогичный способ сделать это в Android. По какой-то причине я не смог найти Color.decode()
, поэтому я искал альтернативу. Если вы хотите использовать шестую строку для представления цвета на Android, вы можете сделать следующее:
String hexColor = "#142b44";
View row = findViewById(R.id.row);
int color = Color.parseColor(hexColor);
row0.setBackgroundColor(color);
Подробнее в Цвет # parseColor