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");
}