Prima di tutto, è un android.graphics.Color i thats classe composta da soli metodi statici. Come e perché hai creato un nuovo oggetto android.graphics.Color? (Questo è completamente inutile e l'oggetto stesso memorizza alcun dato)
Ma comunque ... ho intenzione di assumere la vostra utilizzando un oggetto che in realtà memorizza i dati ...
Un intero è composto da 4 byte (in Java). Guardando la funzione getRGB() dall'oggetto java Color standard possiamo vedere le mappe java ogni colore a un byte del numero intero nell'ordine ARGB (Alpha-Red-Green-Blue). Siamo in grado di replicare questo comportamento con un metodo personalizzato come segue:
public int getIntFromColor(int Red, int Green, int Blue){
Red = (Red << 16) & 0x00FF0000; //Shift red 16-bits and mask out other stuff
Green = (Green << 8) & 0x0000FF00; //Shift Green 8-bits and mask out other stuff
Blue = Blue & 0x000000FF; //Mask out anything not blue.
return 0xFF000000 | Red | Green | Blue; //0xFF000000 for 100% Alpha. Bitwise OR everything together.
}
Questo presuppone che si può in qualche modo recuperare il rosso individuo, componenti di colore verde e blu e che tutti i valori passato per i colori sono 0-255.
Se i valori RGB sono in forma di una percentuale float compreso tra 0 e 1 considerare il seguente metodo:
public int getIntFromColor(float Red, float Green, float Blue){
int R = Math.round(255 * Red);
int G = Math.round(255 * Green);
int B = Math.round(255 * Blue);
R = (R << 16) & 0x00FF0000;
G = (G << 8) & 0x0000FF00;
B = B & 0x000000FF;
return 0xFF000000 | R | G | B;
}
Come altri hanno detto, se si sta utilizzando un oggetto Java Standard, basta usare getRGB ();
Se si decide di utilizzare la classe di colore Android correttamente si può anche fare:
int RGB = android.graphics.Color.argb(255, Red, Green, Blue); //Where Red, Green, Blue are the RGB components. The number 255 is for 100% Alpha
o
int RGB = android.graphics.Color.rgb(Red, Green, Blue); //Where Red, Green, Blue are the RGB components.
come altri hanno detto ... (seconda funzione assume 100% alfa)
Entrambi i metodi fondamentalmente fanno la stessa cosa del primo metodo creato sopra.
Questo appare come lo stesso problema: http://stackoverflow.com/questions/6926644/android-color-to-int-conversion – TravJenkins
Da dove viene l'oggetto di colore provengono da ? Sono confuso perché stai passando un oggetto Color al posto dell'int che rappresenta il colore in primo luogo. La classe Color in Android definisce i metodi statici per la creazione e la conversione di colori. Dalla mia comprensione non dovrebbe essere inizializzato –