Так что, если вы ищете красивую цветовую палитру, возможно, это не такая уж хорошая идея - использовать полностью случайные значения. Такой подход может не дать наилучших результатов, он всегда приводит к выбору похожих цветов, слишком темных или слишком ярких.
Полуслучайный подход:
Если вам нужны свежие и блестящие цвета, используйте следующий простой класс, который я написал ранее, когда у меня были такие же проблемы. Он semi-random
использует предопределенную цветовую палитру:
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;
}
}
Случайный подход:
Но если вы все еще random approach
думаете об использовании, вы можете использовать эту единственную строку вместо нескольких строк кода:
int color= ((int)(Math.random()*16777215)) | (0xFF << 24);
Цель использования (0xFF << 24)
- установить максимальное значение альфа, что означает нулевую прозрачность.