2013-07-27 16 views
5

Mam następujący problem:Jak działają kody kolorów int w Androidzie?

Mam widok listy, chcę przypisać kolor gradientu do separatora elementów (Przegródek) tego widoku listy. Używam następujący kod:

list = (ListView) findViewById(R.id.list); 
    int[] colors = { 0, 0xffffff00, 0 }; 
    list.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors)); 
    list.setDividerHeight(4); 

Spojrzałam kod koloru (0xffffff00) od: http://developer.android.com/reference/android/graphics/Color.html

PROBLEM:

Jednak ten kolor jest żółty, co chcę jest złoty. Chciałbym również wiedzieć, jak to działa, mam na myśli, jak mogę zdefiniować kolor mojego wyboru, jak dotąd próbowałem zrozumieć ze strony dewelopera, ale nie jest to zbyt jasne.

+0

[colorpicker] (http://www.colorpicker.com/) – CRUSADER

+0

Jak używać tych wartości kolorów pod względem ff? Jestem zdezorientowany w tej części! – user2613996

+1

Jako że @blackbelt powiedział, że pierwszy ff jest komponentem alfa, bardziej przypomina przezroczystość, ff jest całkowicie nieprzezroczysty, a 00 jest przezroczysty. Tak więc, FFC0C0C0 jest całkowicie nieprzezroczystym szarym kolorem, a 00C0C0C0 ma przezroczysty szary kolor. Tak, użyj kodów kolorów ze strony wyżej wymienionych poprzedzone bitów przejrzystości .. :) – CRUSADER

Odpowiedz

8

, który napisałeś, jest notacją szesnastkową. Możesz myśleć o kolorze złożonym z 4 komponentów. ARGB. W twoim przykładzie masz 0xffffff00. Pierwszy ff to komponent alfa, drugi ff to czerwony składnik, trzeci ff to zielony komponent, czwarty 00 to niebieski komponent. Zmień wartości szesnastkowe, aby uzyskać kolory.

Zastosowanie

int color = Color.argb(255, 255, 175, 64); 

lub użyć iteger HEX konwerter

+0

Ok mam koloru RGB: R: 255 G: 175 B: 64 Jak repressent go pod względem FF? – user2613996

+0

Bingo !! Działa jak marzenie! – user2613996

2

dla złota trzeba żółtym, który jest bardziej czerwony niż zielony, więc spróbuj 0xffffc000. W dziesiętnym, który będzie czerwony 255 zielony 192 niebieski 0. Aby naprawdę zrozumieć, jak system RGB działa spędzać chwilę grając z wartościami, nie sądzę, że można uzyskać głębokie zrozumienie tylko czytając o tym.

+0

Tak, jestem całkowicie zdezorientowany, jak działa ff i jakie wartości przekonwertować RGB na, aby uzyskać reprezentację ff. Dzięki, pozwól mi to wypróbować! – user2613996

+1

Pytasz się, jak konwertować liczby dziesiętne na szesnastkowe? Podziel przez 16: iloraz jest pierwszą cyfrą, a pozostała jest drugą. Napisz A, B, .. na 10, 11, .. Ponieważ dzielenie przez 16 nie jest łatwe w arytmetyce mentalnej, lepiej zapomnieć dziesiętnie i przywyknąć do szesnastkowego – Joni