Intereting Posts

Создайте новый цвет.

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

Public ColorDrawable (цвет int)

Добавлено в API level 1 Создает новый ColorDrawable с указанным цветом.

Параметры цвета Цвет для рисования.

Таким образом, мой код не работает, потому что я получаю ошибку Invalid int: «FF6666». Есть идеи?

int decode = Integer.decode("FF6666"); ColorDrawable colorDrawable = new ColorDrawable(decode); 

Solutions Collecting From Web of "Создайте новый цвет."

Поскольку вы говорите об гексе, вы должны начинать с 0x и не забывать непрозрачность.

Итак, в основном: 0xFFFF6666

 ColorDrawable cd = new ColorDrawable(0xFFFF6666); 

Вы также можете создать новый файл colors.xml в / res и определить цвета, например:

 <?xml version="1.0" encoding="utf-8"?> <resources> <color name="mycolor">#FF6666</color> </resources> 

И просто получите цвет, определенный в R.color.mycolor

 getResources().getColor(R.color.mycolor) 

Это должно быть так …

 ColorDrawable cd = new ColorDrawable(0xffff6666); 

Примечание. Я использовал 8 шестнадцатеричных цифр, а не 6 шестнадцатеричных цифр. Которые добавляют к прозрачности

Для использования с ContextCompat и повторного использования цвета вы можете сделать что-то вроде этого:

 ColorDrawable colorDrawable = new ColorDrawable(ContextCompat.getColor(this, R.color.white)); 

Я думаю, вы должны использовать:

Public static int parseColor (String colorString)

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