Android: java.lang.IllegalArgumentException: Неизвестный цвет

Я получаю ошибку выше, когда пытаюсь запустить следующий код:

int colourInt = Color.parseColor(colour.getHexValue());

Оскорбительное шестнадцатеричное значение ee3090b0. Есть ли способ, которым я могу преобразовать шестнадцатеричное значение цвета в его целочисленный эквивалент и все еще сохранить значение альфа? Я пробовал следовать предложению, сделанному в этом сообщении , но он не работает...

Ответы

Ответ 1

Из документация:

public static int parseColor (String colorString)

Разберите цветную строку и верните соответствующий цвет-int. Если строка не может быть проанализирована, генерирует исключение IllegalArgumentException. Поддерживаемые форматы: #RRGGBB #AARRGGBB "красный", "синий", "зеленый", "черный", "белый", "серый", "голубой", "пурпурный", "желтый", "светлый", 'DarkGray'

Ваш метод, вероятно, возвращает строку, которая не начинается с #.

Ответ 2

Оберните его внутри блока try catch и установите в блоке catch по умолчанию цвет для обработки исключения

Например, я разбираю цвет из удаленной конфигурации Firebase, если при извлечении этого цвета выбрасывается IllegalArgumentException я задал цвет по умолчанию в своем приложении.

          try{
               color = Color.parseColor(RemoteConfigSingleton.getInstance().getEventColor());
            }catch (IllegalArgumentException e){
                color = Color.parseColor("#E53935");
            }