Android
थीम, स्टाइल, गुण
खोज…
वैश्विक स्तर पर कस्टम थीम का उपयोग करें
Theme.xml में:
<style name="AppTheme" parent="Theme.AppCompat">
<!-- Theme attributes here -->
</style>
AndroidManifest.xml में:
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<!-- Activity declarations here -->
</application>
प्राथमिक, प्राथमिक अंधेरे और उच्चारण रंगों को परिभाषित करें
आप अपने विषय के रंग पैलेट को अनुकूलित कर सकते हैं।
फ्रेमवर्क एपीआई का उपयोग करना
<style name="AppTheme" parent="Theme.Material">
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primary_dark</item>
<item name="android:colorAccent">@color/accent</item>
</style>
Appcompat समर्थन पुस्तकालय का उपयोग करना (और AppCompatActivity
)
<style name="AppTheme" parent="Theme.AppCompat">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/accent</item>
</style>
कस्टम थीम प्रति गतिविधि का उपयोग करें
Theme.xml में:
<style name="MyActivityTheme" parent="Theme.AppCompat">
<!-- Theme attributes here -->
</style>
AndroidManifest.xml में:
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.AppCompat">
<activity
android:name=".MyActivity"
android:theme="@style/MyActivityTheme" />
</application>
ओवरक्रोल कलर (एपीआई 21+)
<style name="AppTheme" parent="Theme.AppCompat">
<item name="android:colorEdgeEffect">@color/my_color</item>
</style>
तरंग रंग (एपीआई 21+)
उपयोगकर्ता द्वारा क्लिक करने योग्य दृश्य दबाए जाने पर लहर एनीमेशन दिखाया जाता है।
आप अपने ऐप द्वारा उपयोग किए गए ?android:colorControlHighlight
रंग का उपयोग कर सकते हैं ?android:colorControlHighlight
अपने विचारों में ?android:colorControlHighlight
। आप android:colorControlHighlight
को बदलकर इस रंग को अनुकूलित कर सकते हैं android:colorControlHighlight
अपनी थीम में android:colorControlHighlight
विशेषता:
इस प्रभाव का रंग बदला जा सकता है:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="android:colorControlHighlight">@color/my_color</item>
</style>
या, यदि आप एक सामग्री थीम का उपयोग कर रहे हैं:
<style name="AppTheme" parent="android:Theme.Material.Light">
<item name="android:colorControlHighlight">@color/your_custom_color</item>
</style>
लाइट स्टेटस बार (एपीआई 23+)
यह विशेषता स्टेटस बार आइकन (स्क्रीन के शीर्ष पर) की पृष्ठभूमि को सफेद में बदल सकती है।
<style name="AppTheme" parent="Theme.AppCompat">
<item name="android:windowLightStatusBar">true</item>
</style>
पारभासी नेविगेशन और स्थिति बार (एपीआई 19+)
नेविगेशन बार (स्क्रीन के नीचे) पारदर्शी हो सकता है। इसे प्राप्त करने का तरीका इस प्रकार है।
<style name="AppTheme" parent="Theme.AppCompat">
<item name="android:windowTranslucentNavigation">true</item>
</style>
इस विशेषता को शैली में लागू करके स्थिति पट्टी (स्क्रीन के ऊपर) को पारदर्शी बनाया जा सकता है:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="android:windowTranslucentStatus">true</item>
</style>
नेविगेशन बार रंग (एपीआई 21+)
इस विशेषता का उपयोग नेविगेशन बार (एक, जिसमें बैक, होम हाल बटन) को बदलने के लिए किया जाता है। आमतौर पर यह काला होता है, हालांकि इसका रंग बदला जा सकता है।
<style name="AppTheme" parent="Theme.AppCompat">
<item name="android:navigationBarColor">@color/my_color</item>
</style>
थीम विरासत
विषयों को परिभाषित करते समय, आमतौर पर सिस्टम द्वारा प्रदान की गई थीम का उपयोग करता है, और फिर परिवर्तन अपने स्वयं के एप्लिकेशन को फिट करने के लिए लुक को संशोधित करता है। उदाहरण के लिए, यह कैसे Theme.AppCompat
विषय विरासत में मिला है:
<style name="AppTheme" parent="Theme.AppCompat">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
इस थीम में अब मानक Theme.AppCompat
थीम के सभी गुण हैं, केवल उन लोगों को छोड़कर जिन्हें हमने स्पष्ट रूप से बदल दिया है।
इनहेरिट करते समय एक शॉर्टकट भी होता है, आमतौर पर इसका इस्तेमाल तब किया जाता है जब कोई व्यक्ति अपने विषय से विरासत में मिलता है:
<style name="AppTheme.Red">
<item name="colorAccent">@color/red</item>
</style>
चूंकि इसमें पहले से ही AppTheme.
यह के नाम की शुरुआत में, यह स्वतः ही यह इनहेरिट करती है, को परिभाषित करने की जरूरत के बिना parent
विषय। यह उपयोगी है जब आपको अपने ऐप के एक भाग (उदाहरण के लिए, एक एकल गतिविधि) के लिए विशिष्ट शैलियों को बनाने की आवश्यकता होती है।
एक अनुप्रयोग में कई विषयों
अपने Android एप्लिकेशन में एक से अधिक थीम का उपयोग करते हुए, आप इस तरह के होने के लिए हर विषय में कस्टम रंग जोड़ सकते हैं:
सबसे पहले, हमें अपने विषयों को इस तरह से style.xml
जोड़ना होगा:
<style name="OneTheme" parent="Theme.AppCompat.Light.DarkActionBar">
</style>
<!-- -->
<style name="TwoTheme" parent="Theme.AppCompat.Light.DarkActionBar" >
</style>
......
ऊपर आप OneTheme और TwoTheme देख सकते हैं।
अब, अपने AndroidManifest.xml
और इस लाइन को जोड़ें: android:theme="@style/OneTheme"
अपने एप्लिकेशन टैग में, इससे OneTheme को डिफ़ॉल्ट थीम बनाया जाएगा:
<application
android:theme="@style/OneTheme"
...>
attrs.xml
नाम से नई xml फ़ाइल बनाएं और इस कोड को जोड़ें:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="custom_red" format="color" />
<attr name="custom_blue" format="color" />
<attr name="custom_green" format="color" />
</resources>
<!-- add all colors you need (just color's name) -->
style.xml
वापस जाएँ। style.xml
और प्रत्येक विषय के लिए अपने मूल्यों के साथ इन रंगों को जोड़ें:
<style name="OneTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="custom_red">#8b030c</item>
<item name="custom_blue">#0f1b8b</item>
<item name="custom_green">#1c7806</item>
</style>
<style name="TwoTheme" parent="Theme.AppCompat.Light.DarkActionBar" >
<item name="custom_red">#ff606b</item>
<item name="custom_blue">#99cfff</item>
<item name="custom_green">#62e642</item>
</style>
अब आपके पास प्रत्येक विषय के लिए कस्टम रंग हैं, आइए इन रंगों को हमारे विचारों में जोड़ें।
"? Attr /" का उपयोग करके TextView में custom_blue रंग जोड़ें:
अपने चित्र पर जाएं और इस रंग को जोड़ें:
<TextView>
android:id="@+id/txte_view"
android:textColor="?attr/custom_blue" />
Mow हम केवल सिंगल लाइन setTheme(R.style.TwoTheme);
द्वारा थीम बदल सकते हैं setTheme(R.style.TwoTheme);
इस लाइन से पहले होना चाहिए setContentView()
में विधि onCreate()
विधि, इस तरह Activity.java
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.TwoTheme);
setContentView(R.layout.main_activity);
....
}
एक बार में सभी गतिविधियों के लिए विषय बदलें
हम सभी गतिविधियों के लिए विषय को बदलना चाहते हैं, तो हम नया वर्ग नामित MyActivity बनाने के लिए फैली AppCompatActivity
वर्ग (या Activity
वर्ग) और ऐड लाइन setTheme(R.style.TwoTheme);
onCreate () विधि:
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (new MySettings(this).isDarkTheme())
setTheme(R.style.TwoTheme);
}
}
अंत में, अपनी सभी गतिविधियों में शामिल हों, सभी को MyActivity बेस क्लास का विस्तार करें:
public class MainActivity extends MyActivity {
....
}
विषय को बदलने के लिए, बस MyActivity पर जाएं और R.style.TwoTheme
को अपने विषय में बदलें ( R.style.OneTheme
, R.style.ThreeTheme
....)।