Kolory szesnastkowe w systemie Android mają czasami 8 cyfr. W jaki sposób? Jaka jest różnica między #FFFFFF a # FFFFFF00

82

Czasami widziałem na przykładach, w których kolorowanie w systemie Android odbywa się jako # FF191919. Mam na myśli 8-cyfrową liczbę szesnastkową. Ale powinna to być tylko 6-cyfrowa liczba. W jaki sposób są one powiązane? Jeśli chcę o przekonwertować 6 cyfrową liczbę na 8 cyfrową. Jak to zrobić? Mam na myśli przekonwertować # 424242 na kolorowanie liczb 8-cyfrowych? Proszę o szczegóły. Dziękuję za twój czas i pomoc.

Vinod
źródło

Odpowiedzi:

105

Dodatkowe 2 cyfry służą do określenia przezroczystości kolorów lub kanału alfa.

Android używa formatu ARGB (lub AARRGGBB, jak w przykładzie)

Aby uzyskać więcej informacji (dotyczących systemu Android), zapoznaj się z dokumentacją dotyczącą kolorów

Veger
źródło
Czy jest jakiś dobry program, który pokaże kolory po wpisaniu wszystkich 8 cyfr?
anon58192932
Jest ich dużo: każda szanująca się aplikacja do rysowania akceptuje dane wejściowe RGBA i pokazuje wynikowy kolor. Lub wyszukaj „próbnik kolorów rgb” lub „koło kolorów rgb”, aby znaleźć witrynę internetową oferującą tę usługę. (Uwaga: cyfry alfa nie są naprawdę interesujące, ponieważ definiują przezroczystość i nie wpływają na kolor)
Veger
1
Sama odpowiedź nie wyjaśnia, jakie są te dodatkowe 2 cyfry. pierwsze dwa? ostatnie dwa? dwie cyfry gdzieś pośrodku?
Abhishek Jain
„dodatkowe 2 cyfry” sugerują, że są dołączane (czyli ostatnie dwie), ale zaktualizuję odpowiedź, aby była wyraźna i poprawna
Veger
46

Pierwsze dwa znaki reprezentują wartość alfa (przezroczystości), gdzie FFjest w pełni widoczna. Jest to znane jako aRGB.

shanethehat
źródło
1
więc na przykład #FF000000to to samo #000000, co jest po prostu jednolitą czernią?
Bruno Finger
14

8-cyfrowy kod szesnastkowy to kolor ARGB . Jest taki sam jak zwykły RGB , ale zapewnia dodatkowy kanał alfa.

#RRGGBBw RGB jest taki sam jak #00RRGGBBw ARGB. Spójrz także na Color.argb .

Andy
źródło
9

Ośmiocyfrowy system Android HEx to aRGB. Wartości aRGB są zwykle wyrażane za pomocą 8 cyfr szesnastkowych, przy czym każda para cyfr szesnastkowych reprezentuje odpowiednio wartości kanału Alfa, Czerwony, Zielony i Niebieski. Na przykład 80FFFF00 reprezentuje 50,2% nieprzezroczystej (nieprzedmnożonej) żółci. Wartość szesnastkowa 80, czyli 128 w systemie dziesiętnym, reprezentuje wartość alfa 50,2%, ponieważ 128 to około 50,2% maksymalnej wartości 255 (szesnastkowo FF); aby kontynuować rozszyfrowywanie wartości 80FFFF00, pierwsza FF reprezentuje maksymalną wartość, jaką może mieć kolor czerwony; druga FF jest jak poprzednia, ale dla zielonego; ostatnie 00 reprezentuje minimalną wartość, jaką może mieć niebieski (w rzeczywistości - nie ma niebieskiego). W konsekwencji czerwony + zielony daje żółty. W przypadkach, gdy alfa nie jest używana, można ją skrócić do 6 cyfr RRGGBB, dlatego zdecydowano się umieścić alfa na górnych bitach.

Terry Miller
źródło
8

8-cyfrowy kolor określa poziom alpa

wyodrębnijmy wszystko, co definiujemy kolor szesnastkowy jako 6 par wartości rgb 2 cyfry na

Pierwsza 2 cyfra dla czerwonego, druga 2 cyfry dla zielonego i trzecia 2 cyfry dla niebieskiego teraz, jeśli chcesz ustawić poziom alfa, to określ 8 cyfrą jako ARGB, więc teraz została zdefiniowana pierwsza 2 cyfra dla alfy i reszta jest dla RGB

Pratik
źródło