2013-07-27 10 views
5

Ho il seguente problema:Come funzionano i codici colore int in Android?

Ho una vista elenco, voglio assegnare un colore sfumato al separatore di elementi (divisore) di questa vista elenco. Sto usando il seguente codice:

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

ho guardato il codice colore (0xffffff00) da: http://developer.android.com/reference/android/graphics/Color.html

PROBLEMA:

Tuttavia questo colore è giallo, quello che voglio è d'oro. Mi interessa anche sapere come funziona, voglio dire come posso definire il colore della mia scelta, finora ho cercato di capire dal sito dello sviluppatore ma non è molto chiaro.

+0

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

+0

Come utilizzare questi valori di colore in termini di ff? Sono confuso da quella parte! – user2613996

+1

Come @blackbelt ha detto che first ff è un componente alfa, più simile allo scopo di trasparenza, ff è completamente opaco e 00 per trasparente. Quindi, FFC0C0C0 è completamente grigio opaco e 00C0C0C0 è di colore grigio trasparente. Quindi, utilizzare i codici di colore dal sito di cui sopra preceduta da bit di trasparenza .. :) – CRUSADER

risposta

8

che hai scritto è la notazione esadecimale. Puoi pensare a un colore come composto da 4 componenti. ARGB. Nel tuo esempio hai 0xffffff00. Il primo ff è il componente alfa, il secondo ff è il componente rosso, il terzo ff è il componente verde il quarto 00 è il componente blu. Cambia quei valori esadecimali che puoi ottenere i tuoi colori.

Usa

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

o utilizzare un iteger al convertitore esadecimale

+0

Va bene ho un colore RGB: R: 255 G: 175 B : 64 Come si repressent in termini di FF? – user2613996

+0

Bingo !! Funziona come un fascino! – user2613996

2

Per l'oro è necessario un giallo che è più rosso che verde, in modo da provare 0xffffc000. In decimale che sarebbe rosso 255 verde 192 blu 0. Per capire veramente come funziona il sistema RGB, trascorri un po 'di tempo giocando con i valori, non penso sia possibile ottenere una comprensione profonda solo leggendo al riguardo.

+0

Sì, sono completamente confuso da come funziona ff e da quali valori convertire RGB per ottenere una rappresentazione ff. Grazie fammi provare questo! – user2613996

+1

Si sta chiedendo come convertire i numeri decimali in esadecimali? Dividi per 16: il quoziente è la prima cifra e il resto è il secondo. Scrivi A, B, .. per 10, 11, .. Poiché la divisione per 16 non è facile nell'aritmetica mentale, è meglio dimenticare semplicemente i decimali e abituarsi all'esadecimale – Joni