#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")