मैं संपर्क ऐप के बारे में टिप्पणियों को पढ़ता हूं और यह कैसे प्रत्येक संपर्क के लिए एक विषय का उपयोग करता है।
संभवतः, संपर्क ऐप में कुछ पूर्वनिर्धारित थीम हैं (प्रत्येक सामग्री के लिए प्राथमिक रंग यहां से: http://www.google.com/design/spec/style/color.html )।
आप onCreate मेथड के अंदर एक सेटकोन्ट व्यू पद्धति से पहले एक थीम लागू कर सकते हैं।
फिर संपर्क ऐप प्रत्येक उपयोगकर्ता के लिए यादृच्छिक रूप से एक थीम लागू कर सकता है।
यह विधि है:
setTheme(R.style.MyRandomTheme);
लेकिन इस पद्धति में एक समस्या है, उदाहरण के लिए यह टूलबार रंग, स्क्रॉल प्रभाव रंग, लहर रंग, आदि बदल सकता है, लेकिन यह स्थिति बार रंग और नेविगेशन बार रंग नहीं बदल सकता है (यदि आप इसे भी बदलना चाहते हैं)।
फिर इस समस्या को हल करने के लिए, आप पहले और विधि का उपयोग कर सकते हैं:
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setNavigationBarColor(getResources().getColor(R.color.md_red_500));
getWindow().setStatusBarColor(getResources().getColor(R.color.md_red_700));
}
यह दो विधि नेविगेशन और स्थिति बार का रंग बदलती है। याद रखें, यदि आप अपना नेविगेशन बार पारभासी सेट करते हैं, तो आप उसका रंग नहीं बदल सकते।
यह अंतिम कोड होना चाहिए:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.MyRandomTheme);
if (Build.VERSION.SDK_INT >= 21) {
getWindow().setNavigationBarColor(getResources().getColor(R.color.myrandomcolor1));
getWindow().setStatusBarColor(getResources().getColor(R.color.myrandomcolor2));
}
setContentView(R.layout.activity_main);
}
आप एक स्विच का उपयोग कर सकते हैं और यादृच्छिक विषयों का उपयोग करने के लिए यादृच्छिक संख्या उत्पन्न कर सकते हैं, या, संपर्क ऐप की तरह, प्रत्येक संपर्क में संभवतः एक पूर्वनिर्धारित नंबर जुड़ा हुआ है।
विषय का एक नमूना:
<style name="MyRandomTheme" parent="Theme.AppCompat.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/myrandomcolor1</item>
<item name="colorPrimaryDark">@color/myrandomcolor2</item>
<item name="android:navigationBarColor">@color/myrandomcolor1</item>
</style>
मेरी अंग्रेजी के लिए खेद है।