Как присвоить значение формата ARGB (например, 0xFFFF0000) Kotlin INT

#android #kotlin #colors

#Android #kotlin #Цвет

Вопрос:

В Android КРАСНЫЙ (в Java) определяется как

 @ColorInt public static final int RED         = 0xFFFF0000;
  

Когда мы присваиваем значение, как показано ниже (в Kotlin), все хорошо.

 val value: Int = Color.RED 
  

Однако, когда я заменяю Color.RED на 0xFFFF0000;

 val value: Int = 0xFFFF0000
  

Это вызовет жалобу The integer literal does not conform to the expected type Int . Как я мог бы обойти это, чтобы я все еще мог писать в формате ARGB?

Примечание

Я знаю, что если мы преобразуем в signed Int, как показано ниже, все будет работать

 val value: Int = -0x10000
  

Но мне будет слишком сложно распознать значение цветового формата (т. е. FFFF0000 относится к формату ARGB).

Ответ №1:

 val value: Int = 0xFFFF0000.toInt()
  

Обратитесь к https://youtrack.jetbrains.com/issue/KT-4749.

Ответ №2:

Я предлагаю вам использовать Color.parseColor:

 val color: Int = Color.parseColor("FFFF0000")