La generazione viene definita attraverso le 3 caratteristiche "hue", "saturation" e "brightness".
Poi utilizza la funzione HSVToColor.
I tre parametri sono definiti in questo modo:
HUE
E' un valore intero tra 0 e 360 (rappresenta i "gradi" nel cerchio di selezione dei colori), che però viene passato come float.SATURATION
E' un float tra 0 e 1, cioè un valore percentuale. Più è alto, più il colore è "carico".BRIGHTNESS
E' un float tra 0 e 1, cioè un valore percentuale. Più è alto, più il colore è "chiaro".1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | private String getRandomColor() { // variabili di appoggio int newColor; Random rnd = new Random(); // generazione di HUE, SATURATION e BRIGHTNESS int hue = (int) Math.floor(0 + rnd.nextDouble()*(360)); int saturation = (int) Math.floor(0 + rnd.nextDouble()*(40)); int brightness = (int) Math.floor(70 + rnd.nextDouble()*(30)); // HSVToColor ( [0..360], [0..1], [0..1]) newColor = android.graphics.Color.HSVToColor(new float[] {((float) hue), ((float) saturation) / 100, ((float) brightness) / 100}); return String.format("#%06X", (0xFFFFFF & newColor)); } // getRandomColor |