Какое использование 0xff -colors в android?

Иногда в проектах Android есть цветовые форматы, такие как "0xff4ca665".

Какова цель их использования?

3 ответа

Некоторые программисты имеют больше опыта с явными 24-битными цветами. И иногда это имеет значение в Android, альфа не маскируется в некоторых более прямых манипуляциях в renderscript. И как вы хотите, чтобы "0xff4ca665" сообщал системе, что вы хотите "0x4ca665", и надеясь, что что-то еще ее маскирует правильно, похоже, похоже на отрывочную ставку на то, что буквально не может даже разорвать часовой цикл.

Признаки не возвращают ссылки на цвета или не дают вам такую ​​возможность, как View.setBackgroundColor(int), где int для цвета кодируется в 32-битном целочисленном виде.

В частности, так работает альфа-маскировка в 24-битных цветах. Они отформатированы как 32-битное целое число как 0bAAAAAAAARRRRRRRGGGGGGGGGBBBBBBBB. Таким образом, каждый цвет RGB получает 8 бит, а 8-битное маскирование для альфы, сделанное с помощью любого последующего смешивания PorterDuff, используется для рендеринга результата. Android хранит цвета чисто как целые числа, поэтому использовать их - хорошая идея, если это то, чем она заканчивается.

Когда вы делаете это в шестнадцатеричном виде, вы получаете две цифры для каждой вещи 0xAARRGGBB, а для AA устанавливается значение ff, равное 255, или полностью непрозрачное. Не нужно доверять цветам, чтобы они не были полностью непрозрачными. Там много раз, когда, если оставить их как 00, вы получите пустым изображением или полностью прозрачным. Знать, какое время это имеет значение, не стоит того, если мы просто откровенно включаем альфа.

Android также имеет несколько других схем, которые имеют значение, которые хранят цвета в шортах. А именно 4444, который хранит альфа и каждый цвет в 4 битах. И 565, который хранит красный цвет в 5 бит, зеленый в 6 бит и синий в 5 бит. Оба из них в конечном итоге используют 16 бит в общей сложности, а не 32. Но в очень многих схемах кодирования используется 8888, что довольно стандартно, поэтому очень часто можно увидеть, как люди ссылаются на такие цвета, особенно в шестнадцатеричном формате.


Некоторые API-интерфейсы Android, такие как View.setBackgroundColor() ожидают целые цвета цвета формата ARGB. Таким образом, 0xff4ca665 обозначает полностью непрозрачный цвет RGB #4ca665, тогда как целое число 0x4ca665 равно 0x004ca665 и, следовательно, обозначает полностью прозрачный цвет.


По той же причине, что и #ff4ca665... Чтобы обозначить значение цвета ARGB.

Если вы используете выше в цветах XML, ведущий ff не является полностью необходимым, потому что им предоставляется полная непрозрачность.

0xff4ca665 будет эквивалентным представлением Java.

В любом случае вы получаете следующий цвет

licensed under cc by-sa 3.0 with attribution.