Wenn Sie also nach einer schönen Farbpalette suchen, ist es vielleicht keine so gute Idee, völlig zufällige Werte zu verwenden. Dieser Ansatz liefert möglicherweise nicht die besten Ergebnisse. Er führt immer zu einer Auswahl ähnlicher Farben, die viel zu dunkel oder viel zu hell sind.
Halbzufälliger Ansatz:
Wenn Sie frische und glänzende Farben benötigen, verwenden Sie die folgende einfache Klasse, die ich zuvor geschrieben habe, als ich dieselben Probleme hatte. Es ist semi-random
und verwendet eine vordefinierte Farbpalette:
class RandomColors {
private Stack<Integer> recycle, colors;
public RandomColors() {
colors = new Stack<>();
recycle =new Stack<>();
recycle.addAll(Arrays.asList(
0xfff44336,0xffe91e63,0xff9c27b0,0xff673ab7,
0xff3f51b5,0xff2196f3,0xff03a9f4,0xff00bcd4,
0xff009688,0xff4caf50,0xff8bc34a,0xffcddc39,
0xffffeb3b,0xffffc107,0xffff9800,0xffff5722,
0xff795548,0xff9e9e9e,0xff607d8b,0xff333333
)
);
}
public int getColor() {
if (colors.size()==0) {
while(!recycle.isEmpty())
colors.push(recycle.pop());
Collections.shuffle(colors);
}
Integer c= colors.pop();
recycle.push(c);
return c;
}
}
Zufälliger Ansatz:
Wenn Sie jedoch immer noch die Verwendung in Betracht ziehen, können random approach
Sie diese einzelne Zeile anstelle mehrerer Codezeilen verwenden:
int color= ((int)(Math.random()*16777215)) | (0xFF << 24);
Der Zweck dieser Verwendung (0xFF << 24)
besteht darin, den Alpha-Wert auf das Maximum zu setzen, das eine Transparenz von Null bedeutet.