तो अगर आप एक सुंदर रंग पैलेट की तलाश कर रहे हैं, हो सकता है कि यह पूरी तरह से यादृच्छिक मूल्यों का उपयोग करने के लिए एक महान विचार नहीं है। यह दृष्टिकोण सर्वोत्तम परिणाम नहीं दे सकता है, यह हमेशा इसी तरह के रंगों के चयन के साथ समाप्त होता है जो बहुत गहरा या रास्ता बहुत उज्ज्वल होता है।
अर्ध-यादृच्छिक दृष्टिकोण:
यदि आपको कुछ नए और चमकदार रंगों की आवश्यकता है, तो निम्नलिखित सरल वर्ग का उपयोग करें, जो मैंने पहले लिखा था जब मेरे पास समान मुद्दे थे। यह 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)
अल्फा वैल्यू को अधिकतम यानी शून्य पारदर्शिता निर्धारित करना है।