Próbuję zrozumieć, jak działają kolory w Androidzie. Mam ten zestaw kolorów jako tło LinearLayout
i otrzymuję szary kolor z pewną przezroczystością:
<gradient android:startColor="#b4555555" android:endColor="#b4555555"
android:angle="270.0" />
Jeśli usunę dwa ostatnie znaki (55), otrzymam jednolity kolor, tracąc przezroczystość. Próbowałem znaleźć stronę, na której mogę znaleźć wyjaśnienie na ten temat, ale nie mogłem go znaleźć.
źródło
<<
na stronie).Android używa szesnastkowych wartości ARGB, które są sformatowane jako #AARRGGBB. Ta pierwsza para liter, AA, reprezentuje kanał alfa. Musisz przekonwertować dziesiętne wartości krycia na wartość szesnastkową. Oto kroki:
Proces wartości szesnastkowej alfa
W ten sposób znajdujesz wartość kanału alfa. Pozwoliłem sobie przygotować dla ciebie listę wartości. Cieszyć się!
Wartości krycia szesnastkowego
źródło
echo "obase=16; ibase=10; (255*12+50)/100" | bc
. (+50 - dla zaokrąglenia do najbliższej wartości, faktycznie jest to 100/2)Wychodząc od odpowiedzi @BlondeFurious , oto kod Java, aby uzyskać każdą wartość szesnastkową od 100% do 0% alfa:
Wynik:
Wersja JavaScript jest poniżej:
Pokaż fragment kodu
Możesz także po prostu użyć „liczby na szesnastkę” Google, gdzie „liczba” to dowolna wartość z zakresu od 0 do 255.
źródło
Android Material Design
Są to konwersje służące do ustawiania poziomów krycia kolorów tekstu.
Ciemny tekst na jasnym tle
DE000000
8A000000
61000000
1F000000
Biały tekst na ciemnym tle
FFFFFFFF
B3FFFFFF
80FFFFFF
1FFFFFFF
Zobacz też
źródło
W systemie Android kolory można określić jako RGB lub ARGB.
http://en.wikipedia.org/wiki/ARGB
W RGB masz dwa znaki dla każdego koloru (czerwony, zielony, niebieski), aw ARGB masz dwa dodatkowe znaki dla kanału alfa.
Tak więc, jeśli masz 8 znaków, jest to ARGB, a pierwsze dwa znaki określają kanał alfa. Jeśli usuniesz dwa pierwsze znaki, będzie to tylko RGB (jednolite kolory, brak alfa / przezroczystości). Jeśli chcesz określić kolor w kodzie źródłowym Java, musisz użyć:
Odniesienie: argb
źródło
8-cyfrowa wartość koloru heksadecymalnego reprezentuje ARGB (alfa, czerwony, zielony, niebieski), podczas gdy 6-cyfrowa wartość zakłada jedynie 100% nieprzezroczystości (całkowicie nieprzezroczysta) i określa tylko wartości RGB. Aby więc było całkowicie nieprzezroczyste, możesz użyć # FF555555 lub po prostu # 555555. Każda dwucyfrowa wartość szesnastkowa to jeden bajt, reprezentujący wartości od 0 do 255.
źródło
w nowej wersji chromowanej (może 67.0.3396.62), kolor heksadecymalny CSS może używać tego modelu wyświetlania,
na przykład:
CC jest nieprzezroczysty, ale stary Chrome nie obsługuje tego modu
źródło