Jadi jika Anda mencari palet warna yang indah, Mungkin Ini Bukan Ide Yang Bagus Untuk menggunakan nilai yang benar-benar acak. Pendekatan ini mungkin tidak memberikan hasil terbaik, Itu selalu berakhir dengan pemilihan warna serupa yang terlalu gelap atau terlalu terang.
Pendekatan semi-acak:
Jika Anda membutuhkan beberapa warna segar dan berkilau maka gunakan kelas sederhana berikut, yang saya tulis sebelumnya ketika saya memiliki masalah yang sama. Ini semi-random
dan menggunakan palet warna yang telah ditentukan:
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;
}
}
Pendekatan acak:
Tetapi jika Anda masih mempertimbangkan untuk menggunakan, random approach
Anda mungkin ingin menggunakan satu baris ini daripada beberapa baris kode:
int color= ((int)(Math.random()*16777215)) | (0xFF << 24);
Tujuan menggunakan ini (0xFF << 24)
adalah untuk mengatur nilai alpha ke maksimum yang berarti transparansi nol.