Android
डेनाइट थीम (AppCompat v23.2 / API 14+)
खोज…
डेनाइट थीम को एक ऐप में जोड़ना
डेनाइट थीम एक ऐप को दिन के समय और डिवाइस के अंतिम ज्ञात स्थान के आधार पर रंग योजनाओं को स्विच करने की शांत क्षमता देता है।
अपनी styles.xml
में निम्न जोड़ें। styles.xml
:
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
जिन विषयों से आप दिन रात की थीम को जोड़ सकते हैं उनमें स्विच करने की क्षमता निम्नलिखित है:
-
"Theme.AppCompat.DayNight"
-
"Theme.AppCompat.DayNight.NoActionBar"
-
"Theme.AppCompat.DayNight.DarkActionBar"
colorPrimary
, colorPrimaryDark
और colorAccent
, आप किसी अन्य रंग को भी जोड़ सकते हैं जिसे आप स्विच करना चाहते हैं, जैसे textColorPrimary
या textColorSecondary
। आप इस style
में अपने ऐप के कस्टम रंग भी जोड़ सकते हैं।
कार्य पर स्विच करने के लिए थीम के लिए, आपको res/values
निर्देशिका में एक डिफ़ॉल्ट colors.xml
और res/values-night
निर्देशिका में अन्य colors.xml
को परिभाषित करने और दिन / रात रंगों को उचित रूप से परिभाषित करने की आवश्यकता है।
थीम को स्विच करने के लिए, अपने जावा कोड से AppCompatDelegate.setDefaultNightMode(int)
विधि को कॉल करें। (यह केवल एक गतिविधि या टुकड़े नहीं, बल्कि पूरे ऐप के लिए रंग योजना को बदल देगा।) उदाहरण के लिए:
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
आप अपनी पसंद के अनुसार निम्नलिखित तीन में से कोई भी पास कर सकते हैं:
-
AppCompatDelegate.MODE_NIGHT_NO
: यह आपके ऐप के लिए डिफ़ॉल्ट थीम सेट करता है औरres/values
डायरेक्टरी में परिभाषित रंगों को लेता है। इस विषय के लिए हल्के रंगों का उपयोग करने की सिफारिश की गई है। -
AppCompatDelegate.MODE_NIGHT_YES
: यह आपके ऐप के लिए एक रात का विषय निर्धारित करता है औरres/values-night
निर्देशिका में परिभाषित रंगों को लेता है। इस विषय के लिए गहरे रंगों का उपयोग करने की सिफारिश की गई है। -
AppCompatDelegate.MODE_NIGHT_AUTO
: यह ऑटो दिन के समय औरvalues
औरvalues-night
निर्देशिकाओं में आपके द्वारा परिभाषित रंगों के आधार पर ऐप के रंगों को स्विच करता है।
getDefaultNightMode()
विधि का उपयोग करके वर्तमान नाइट मोड स्थिति प्राप्त करना भी संभव है। उदाहरण के लिए:
int modeType = AppCompatDelegate.getDefaultNightMode();
कृपया ध्यान दें, यदि आप ऐप को मारते हैं और इसे फिर से खोलते हैं तो थीम स्विच जारी नहीं रहेगा। यदि आप ऐसा करते हैं, तो थीम वापस AppCompatDelegate.MODE_NIGHT_AUTO
बदल जाएगी, जो कि डिफ़ॉल्ट मान है। यदि आप थीम स्विच को जारी रखना चाहते हैं, तो सुनिश्चित करें कि आप साझा प्राथमिकताओं में मूल्य को संग्रहीत करते हैं और संग्रहीत मूल्य को हर बार ऐप को खोले जाने के बाद लोड किया जाता है।