Шестнадцатеричные цвета в Android иногда бывают 8 цифрами. Как? В чем разница между #FFFFFF и # FFFFFF00 - PullRequest
76 голосов
/ 02 августа 2011

Я иногда видел в примерах, где раскраска в Android выполняется как # FF191919. Я имею в виду 8-значное шестнадцатеричное число. Но это должно быть только 6-значное число. Как они связаны? Если я хочу, чтобы преобразовать 6-значное число в 8-значное число. Как это сделать? Я имею в виду конвертировать # 424242 в раскраску из 8 цифр? Пожалуйста, дайте мне знать детали. Спасибо за ваше время и помощь.

Ответы [ 5 ]

100 голосов
/ 02 августа 2011

Дополнительные 2 цифры используются для определения прозрачности цветов или альфа-канала.

Android использует формат ARGB (или AARRGGBB, как вы используете в своем примере)

Для получения дополнительной (специфичной для Android) информации ознакомьтесь с документацией Color

42 голосов
/ 02 августа 2011

Первые два символа представляют значение альфа (прозрачность), где FF полностью виден. Это известно как aRGB.

14 голосов
/ 02 августа 2011

8-значный шестнадцатеричный цвет - ARGB . Он такой же, как обычно RGB , но обеспечивает дополнительный альфа-канал.

#RRGGBB в RGB совпадает с #00RRGGBB в ARGB. Также взгляните на Color.argb .

6 голосов
/ 02 августа 2011

8-значный цвет определяют с уровнем alpa

позвольте извлечь все, что мы определяем шестнадцатеричный цвет как 6-значную пару rgb 2 цифры на

1-я 2-я цифра для красного, 2-я 2-я цифра для зеленогои 3-я 2-я цифра для синего теперь, если вы хотите установить альфа-уровень этого, тогда он будет определяться с 8-ю цифрой как ARGB, так что теперь 1-е 2-значное значение было определено для альфы, а остальные для RGB

4 голосов
/ 22 ноября 2015

8-значный Android HEx называется aRGB. Значения aRGB обычно выражаются с использованием 8 шестнадцатеричных цифр, при этом каждая пара шестнадцатеричных цифр представляет значения альфа, красного, зеленого и синего каналов соответственно. Например, 80FFFF00 представляет 50,2% непрозрачного (без предварительного умножения) желтого цвета. Шестнадцатеричное значение 80, которое равно 128 в десятичном виде, представляет альфа-значение 50,2%, поскольку 128 составляет приблизительно 50,2% от максимального значения 255 (шестнадцатеричный FF); чтобы продолжить расшифровку значения 80FFFF00, первая FF представляет максимальное значение, которое может иметь красный цвет; второй FF похож на предыдущий, но для зеленого; последние 00 представляют минимальное значение, которое может иметь синий (фактически - нет синего). Следовательно, красный + зеленый дает желтый. В тех случаях, когда альфа-канал не используется, его можно сократить до 6 цифр RRGGBB, поэтому он был выбран для помещения альфа-канала в верхние биты. В зависимости от контекста перед шестнадцатеричными цифрами ставится знак 0x или номер (#) [1].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...