Android पर स्टाइल और थीम की मदद से, अपने ऐप्लिकेशन के डिज़ाइन की जानकारी को यूज़र इंटरफ़ेस (यूआई) स्ट्रक्चर और व्यवहार से अलग किया जा सकता है. यह वेब डिज़ाइन में स्टाइलशीट की तरह काम करता है.
स्टाइल, एट्रिब्यूट का कलेक्शन होता है. इससे किसी एक View के दिखने का तरीका तय होता है. स्टाइल में, फ़ॉन्ट का रंग, फ़ॉन्ट का साइज़, बैकग्राउंड का रंग जैसे एट्रिब्यूट तय किए जा सकते हैं. इसके अलावा, और भी कई एट्रिब्यूट तय किए जा सकते हैं.
थीम, एट्रिब्यूट का कलेक्शन होता है. यह पूरे ऐप्लिकेशन, गतिविधि या व्यू के क्रम पर लागू होता है. यह सिर्फ़ किसी एक व्यू पर लागू नहीं होता. कोई थीम लागू करने पर, ऐप्लिकेशन या गतिविधि में मौजूद हर व्यू, थीम के उन सभी एट्रिब्यूट को लागू करता है जो उसके साथ काम करते हैं. थीम, व्यू के अलावा अन्य एलिमेंट पर भी स्टाइल लागू कर सकती हैं. जैसे, स्टेटस बार और विंडो का बैकग्राउंड.
स्टाइल और थीम, a
स्टाइल रिसॉर्स फ़ाइल में
res/values/ तय की जाती हैं. आम तौर पर, इस फ़ाइल का नाम styles.xml होता है.
पहली इमेज. एक ही गतिविधि पर दो थीम लागू की गई हैं:
Theme.AppCompat (बाईं ओर) और Theme.AppCompat.Light (दाईं ओर).
थीम बनाम स्टाइल
थीम और स्टाइल में कई समानताएं होती हैं, लेकिन इनका इस्तेमाल अलग-अलग मकसद के लिए किया जाता है. थीम और स्टाइल का बुनियादी स्ट्रक्चर एक जैसा होता है. इसमें कुंजी-वैल्यू पेयर होता है, जो एट्रिब्यूट को संसाधनों से मैप करता है.
स्टाइल, किसी खास तरह के व्यू के लिए एट्रिब्यूट तय करता है. उदाहरण के लिए, एक स्टाइल, बटन के एट्रिब्यूट तय कर सकता है. स्टाइल में तय किया गया हर एट्रिब्यूट, वह एट्रिब्यूट होता है जिसे लेआउट फ़ाइल में सेट किया जा सकता है. सभी एट्रिब्यूट को किसी स्टाइल में एक्सट्रैक्ट करने से, एक से ज़्यादा विजेट में उनका इस्तेमाल और रखरखाव करना आसान हो जाता है.
थीम, नाम वाले संसाधनों का कलेक्शन तय करती है. इनका रेफ़रंस स्टाइल, लेआउट, विजेट वगैरह में दिया जा सकता है. थीम, Android के संसाधनों को colorPrimary जैसे सिमैंटिक नाम असाइन करती हैं.
स्टाइल और थीम, एक साथ काम करने के लिए बनी हैं. उदाहरण के लिए, आपके पास एक ऐसा स्टाइल हो सकता है जो यह तय करता है कि बटन का एक हिस्सा colorPrimary है और दूसरा हिस्सा colorSecondary है. इन रंगों की असल परिभाषाएं, थीम में दी जाती हैं. जब डिवाइस नाइट मोड में जाता है, तो आपका ऐप्लिकेशन "लाइट" थीम से "डार्क" थीम पर स्विच कर सकता है. इससे, संसाधन के इन सभी नामों की वैल्यू बदल जाती है. आपको स्टाइल बदलने की ज़रूरत नहीं होती, क्योंकि स्टाइल, सिमैंटिक नामों का इस्तेमाल करते हैं. इनमें रंगों की खास परिभाषाएं नहीं होतीं.
थीम और स्टाइल एक साथ कैसे काम करते हैं, इस बारे में ज़्यादा जानकारी के लिए, ब्लॉग पोस्ट Android स्टाइलिंग: थीम बनाम स्टाइल देखें.
स्टाइल बनाना और लागू करना
नया स्टाइल बनाने के लिए, अपने प्रोजेक्ट की res/values/styles.xml फ़ाइल खोलें. हर उस स्टाइल के लिए यह तरीका अपनाएं जिसे आपको बनाना है:
- एक
<style>एलिमेंट जोड़ें. इसका नाम ऐसा होना चाहिए जिससे स्टाइल की यूनीक पहचान हो. - हर उस स्टाइल एट्रिब्यूट के लिए एक
<item>एलिमेंट जोड़ें जिसे आपको तय करना है. हर आइटम में मौजूदnameएक एट्रिब्यूट के बारे में बताता है. नहीं तो आपको अपने लेआउट में एक XML एट्रिब्यूट के तौर पर इसका इस्तेमाल करना पड़ेगा.<item>एलिमेंट में मौजूद वैल्यू, उस एट्रिब्यूट की वैल्यू होती है.
उदाहरण के लिए, मान लें कि आपने यह स्टाइल तय किया है:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="GreenText" parent="TextAppearance.AppCompat"> <item name="android:textColor">#00FF00</item> </style> </resources>
स्टाइल को किसी व्यू पर इस तरह लागू किया जा सकता है:
<TextView style="@style/GreenText" ... />
स्टाइल में तय किया गया हर एट्रिब्यूट, उस व्यू पर लागू होता है. हालांकि, ऐसा तब होता है, जब व्यू उसे स्वीकार करता है. व्यू, उन एट्रिब्यूट को अनदेखा कर देता है जिन्हें वह स्वीकार नहीं करता.
किसी स्टाइल को बढ़ाना और उसे पसंद के मुताबिक बनाना
अपने स्टाइल बनाते समय, हमेशा फ़्रेमवर्क या सपोर्ट लाइब्रेरी से किसी मौजूदा स्टाइल को बढ़ाएं. इससे, प्लैटफ़ॉर्म के यूज़र इंटरफ़ेस (यूआई) स्टाइल के साथ कंपैटिबिलिटी बनी रहती है. किसी स्टाइल को बढ़ाने के लिए, parent एट्रिब्यूट के साथ वह स्टाइल तय करें जिसे आपको बढ़ाना है. इसके बाद, इनहेरिट किए गए स्टाइल एट्रिब्यूट को ओवरराइड किया जा सकता है और नए एट्रिब्यूट जोड़े जा सकते हैं.
उदाहरण के लिए, Android प्लैटफ़ॉर्म के डिफ़ॉल्ट टेक्स्ट दिखने के स्टाइल को इनहेरिट किया जा सकता है और उसमें इस तरह बदलाव किया जा सकता है:
<style name="GreenText" parent="@android:style/TextAppearance"> <item name="android:textColor">#00FF00</item> </style>
हालांकि, अपने ऐप्लिकेशन के मुख्य स्टाइल को हमेशा Android सपोर्ट लाइब्रेरी से इनहेरिट करें. सपोर्ट लाइब्रेरी में मौजूद स्टाइल, हर वर्शन में उपलब्ध यूज़र इंटरफ़ेस (यूआई) एट्रिब्यूट के लिए हर स्टाइल को ऑप्टिमाइज़ करके कंपैटिबिलिटी उपलब्ध कराते हैं. सपोर्ट लाइब्रेरी के स्टाइल के नाम अक्सर प्लैटफ़ॉर्म के स्टाइल के नाम से मिलते-जुलते होते हैं, लेकिन इनमें AppCompat शामिल होता है.
किसी लाइब्रेरी या अपने प्रोजेक्ट से स्टाइल इनहेरिट करने के लिए, पैरंट स्टाइल का नाम, पिछले उदाहरण में दिखाए गए @android:style/ हिस्से के बिना तय करें. उदाहरण के लिए, यहां दिए गए उदाहरण में, सपोर्ट लाइब्रेरी से टेक्स्ट दिखने के स्टाइल इनहेरिट किए गए हैं:
<style name="GreenText" parent="TextAppearance.AppCompat"> <item name="android:textColor">#00FF00</item> </style>
parent एट्रिब्यूट का इस्तेमाल करने के बजाय, डॉट नोटेशन का इस्तेमाल करके किसी स्टाइल के नाम को बढ़ाकर भी स्टाइल इनहेरिट किए जा सकते हैं. हालांकि, प्लैटफ़ॉर्म के स्टाइल इनहेरिट नहीं किए जा सकते. इसका मतलब है कि अपने स्टाइल के नाम से पहले, उस स्टाइल का नाम जोड़ें जिसे आपको इनहेरिट करना है. इन दोनों नामों के बीच में एक डॉट लगाएं. आम तौर पर, ऐसा सिर्फ़ अपने स्टाइल को बढ़ाते समय किया जाता है. अन्य लाइब्रेरी के स्टाइल को बढ़ाते समय ऐसा नहीं किया जाता. उदाहरण के लिए, यहां दिए गए स्टाइल में, पिछले उदाहरण में मौजूद GreenText के सभी स्टाइल इनहेरिट किए गए हैं. इसके बाद, टेक्स्ट का साइज़ बढ़ाया गया है:
<style name="GreenText.Large"> <item name="android:textSize">22dp</item> </style>
एक से ज़्यादा नाम जोड़कर, इस तरह स्टाइल को जितनी बार चाहें उतनी बार इनहेरिट किया जा सकता है.
यह जानने के लिए कि <item> टैग के साथ किन एट्रिब्यूट को तय किया जा सकता है, अलग-अलग क्लास के रेफ़रंस में मौजूद "एक्सएमएल
एट्रिब्यूट" टेबल देखें. सभी व्यू, बेस
View क्लास से
एक्सएमएल एट्रिब्यूट के साथ काम करते हैं. साथ ही, कई व्यू अपने खास एट्रिब्यूट जोड़ते हैं. उदाहरण के लिए, TextView एक्सएमएल एट्रिब्यूट
में
android:inputType
एट्रिब्यूट शामिल होता है. इसे ऐसे टेक्स्ट व्यू पर लागू किया जा सकता है जो इनपुट लेता है. जैसे, EditText विजेट.
किसी स्टाइल को थीम के तौर पर लागू करना
थीम को उसी तरीके से बनाया जा सकता है जिस तरीके से स्टाइल बनाए जाते हैं. हालांकि, इसे लागू करने का तरीका अलग होता है:
किसी व्यू पर style एट्रिब्यूट के साथ स्टाइल लागू करने के बजाय, थीम को
android:theme एट्रिब्यूट के साथ AndroidManifest.xml फ़ाइल में मौजूद <application> टैग या
<activity> टैग पर लागू किया जाता है.
उदाहरण के लिए, यहां Android सपोर्ट लाइब्रेरी के Material Design की "डार्क" थीम को पूरे ऐप्लिकेशन पर लागू करने का तरीका बताया गया है:
<manifest ... > <application android:theme="@style/Theme.AppCompat" ... > </application> </manifest>
यहां सिर्फ़ एक गतिविधि पर "लाइट" थीम लागू करने का तरीका बताया गया है:
<manifest ... > <application ... > <activity android:theme="@style/Theme.AppCompat.Light" ... > </activity> </application> </manifest>
ऐप्लिकेशन या गतिविधि में मौजूद हर व्यू, दी गई थीम में तय किए गए उन स्टाइल को लागू करता है जो उसके साथ काम करते हैं. अगर कोई व्यू, स्टाइल में तय किए गए कुछ ही एट्रिब्यूट के साथ काम करता है, तो वह सिर्फ़ उन एट्रिब्यूट को लागू करता है और जिन्हें वह स्वीकार नहीं करता उन्हें अनदेखा कर देता है.
Android 5.0 (एपीआई लेवल 21) और Android सपोर्ट लाइब्रेरी v22.1 से, लेआउट फ़ाइल में किसी व्यू के लिए android:theme एट्रिब्यूट भी तय किया जा सकता है. इससे उस व्यू और उसके चाइल्ड व्यू की थीम में बदलाव होता है. यह आपके इंटरफ़ेस के किसी खास हिस्से में थीम के कलर पैलेट में बदलाव करने के लिए काम का है.
पिछले उदाहरणों में, Android सपोर्ट लाइब्रेरी से मिली Theme.AppCompat जैसी थीम लागू करने का तरीका दिखाया गया है. हालांकि, आम तौर पर थीम को अपने ऐप्लिकेशन के ब्रैंड के हिसाब से कस्टमाइज़ करना होता है. ऐसा करने का सबसे अच्छा तरीका है कि इन स्टाइल को सपोर्ट लाइब्रेरी से बढ़ाया जाए और कुछ एट्रिब्यूट को ओवरराइड किया जाए. इसके बारे में, अगले सेक्शन में बताया गया है.
स्टाइल का क्रम
Android ऐप्लिकेशन में, अलग-अलग तरीकों से एट्रिब्यूट सेट किए जा सकते हैं. उदाहरण के लिए, लेआउट में सीधे एट्रिब्यूट सेट किए जा सकते हैं, किसी व्यू पर स्टाइल लागू किया जा सकता है, किसी लेआउट पर थीम लागू की जा सकती है. यहां तक कि प्रोग्राम के ज़रिए भी एट्रिब्यूट सेट किए जा सकते हैं.
अपने ऐप्लिकेशन को स्टाइल करने का तरीका चुनते समय, Android के स्टाइल के क्रम का ध्यान रखें. आम तौर पर, एकरूपता के लिए थीम और स्टाइल का ज़्यादा से ज़्यादा इस्तेमाल करें. अगर एक ही एट्रिब्यूट को कई जगहों पर तय किया जाता है, तो यहां दी गई सूची से यह तय होता है कि कौनसे एट्रिब्यूट आखिर में लागू किए जाते हैं. सूची में, सबसे ज़्यादा प्राथमिकता वाले एट्रिब्यूट से लेकर सबसे कम प्राथमिकता वाले एट्रिब्यूट तक क्रम में दिए गए हैं.
TextView-से ली गई क्लास में, टेक्स्ट स्पैन का इस्तेमाल करके, वर्ण या पैराग्राफ़ लेवल की स्टाइलिंग लागू करना.- प्रोग्राम के ज़रिए एट्रिब्यूट लागू करना.
- किसी व्यू पर सीधे तौर पर अलग-अलग एट्रिब्यूट लागू करना.
- किसी व्यू पर स्टाइल लागू करना.
- डिफ़ॉल्ट तौर पर मौजूद थीम.
- व्यू के कलेक्शन, किसी गतिविधि या पूरे ऐप्लिकेशन पर थीम लागू करना.
- व्यू के लिए खास स्टाइलिंग लागू करना. जैसे,
TextAppearanceपरTextViewसेट करना.
दूसरी इमेज. span से की गई स्टाइलिंग, textAppearance से की गई स्टाइलिंग को ओवरराइड कर देती है.
TextAppearance
स्टाइल की एक सीमा यह है कि किसी View पर सिर्फ़ एक स्टाइल लागू किया जा सकता है. हालांकि, TextView में TextAppearance एट्रिब्यूट भी तय किया जा सकता है. यह स्टाइल की तरह ही काम करता है. इसे यहां दिए गए उदाहरण में दिखाया गया है:
<TextView ... android:textAppearance="@android:style/TextAppearance.Material.Headline" android:text="This text is styled via textAppearance!" />
TextAppearance की मदद से, टेक्स्ट के लिए खास स्टाइल तय की जा सकती है. साथ ही, View के स्टाइल को अन्य इस्तेमाल के लिए उपलब्ध रखा जा सकता है. हालांकि, ध्यान दें कि अगर View या किसी स्टाइल पर सीधे तौर पर टेक्स्ट के एट्रिब्यूट तय किए जाते हैं, तो वे वैल्यू, TextAppearance की वैल्यू को ओवरराइड कर देती हैं.
TextAppearance , TextView के स्टाइलिंग एट्रिब्यूट के सबसेट के साथ काम करता है. एट्रिब्यूट की पूरी सूची के लिए, TextAppearance देखें.
कुछ सामान्य TextView एट्रिब्यूट शामिल नहीं किए गए हैं. जैसे,
lineHeight[Multiplier|Extra],
lines,
breakStrategy, और
hyphenationFrequency.
TextAppearance वर्ण लेवल पर काम करता है, न कि पैराग्राफ़ लेवल पर. इसलिए,
ऐसे एट्रिब्यूट काम नहीं करते जो पूरे लेआउट पर असर डालते हैं.
डिफ़ॉल्ट थीम को पसंद के मुताबिक बनाना
Android Studio से कोई प्रोजेक्ट बनाने पर, यह डिफ़ॉल्ट रूप से आपके ऐप्लिकेशन पर Material Design की थीम लागू करता है. यह थीम, आपके प्रोजेक्ट की styles.xml फ़ाइल में तय की जाती है. यह AppTheme स्टाइल
सपोर्ट लाइब्रेरी से किसी थीम को बढ़ाता है. इसमें, रंग के उन एट्रिब्यूट के लिए ओवरराइड शामिल होते हैं जिनका इस्तेमाल
यूज़र इंटरफ़ेस (यूआई) के मुख्य एलिमेंट करते हैं. जैसे, ऐप्लिकेशन बार और
फ़्लोटिंग ऐक्शन बटन. हालांकि, ऐसा तब होता है, जब इनका इस्तेमाल किया जाता है. इसलिए, दिए गए रंगों को अपडेट करके, अपने ऐप्लिकेशन के रंग के डिज़ाइन को तुरंत कस्टमाइज़ किया जा सकता है.
उदाहरण के लिए, आपकी styles.xml फ़ाइल इस तरह दिखती है:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style>
स्टाइल की वैल्यू असल में, रंग के अन्य
संसाधनों के रेफ़रंस होती हैं. ये संसाधन, प्रोजेक्ट की
res/values/colors.xml फ़ाइल में तय किए जाते हैं. रंग बदलने के लिए, आपको इसी फ़ाइल में बदलाव करना होता है.
डाइनैमिक कलर और पसंद के मुताबिक बनाए गए अन्य रंगों की मदद से, उपयोगकर्ता अनुभव को बेहतर बनाने के लिए,
Material Design के कलर की खास जानकारी
देखें.
रंगों के बारे में जानने के बाद, res/values/colors.xml में वैल्यू अपडेट करें:
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- Color for the app bar and other primary UI elements. --> <color name="colorPrimary">#3F51B5</color> <!-- A darker variant of the primary color, used for the status bar (on Android 5.0+) and contextual app bars. --> <color name="colorPrimaryDark">#303F9F</color> <!-- a secondary color for controls like checkboxes and text fields. --> <color name="colorAccent">#FF4081</color> </resources>
इसके बाद, अपनी पसंद के मुताबिक अन्य स्टाइल को ओवरराइड किया जा सकता है. उदाहरण के लिए, गतिविधि के बैकग्राउंड का रंग इस तरह बदला जा सकता है:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> ... <item name="android:windowBackground">@color/activityBackground</item> </style>
अपनी थीम में इस्तेमाल किए जा सकने वाले एट्रिब्यूट की सूची के लिए, R.styleable.Theme पर मौजूद एट्रिब्यूट की टेबल देखें. अपने लेआउट में मौजूद व्यू के लिए स्टाइल जोड़ते समय, व्यू क्लास के रेफ़रंस में मौजूद "एक्सएमएल एट्रिब्यूट" टेबल देखकर भी एट्रिब्यूट ढूंढे जा सकते हैं. उदाहरण के लिए, सभी व्यू
बेस View
क्लास से एक्सएमएल एट्रिब्यूट के साथ काम करते हैं.
ज़्यादातर एट्रिब्यूट, खास तरह के व्यू पर लागू होते हैं. वहीं, कुछ एट्रिब्यूट सभी व्यू पर लागू होते हैं. हालांकि, R.styleable.Theme पर मौजूद थीम के कुछ एट्रिब्यूट, लेआउट में मौजूद व्यू पर नहीं, बल्कि गतिविधि की विंडो पर लागू होते हैं. उदाहरण के लिए, windowBackground से विंडो का बैकग्राउंड बदलता है और windowEnterTransition से, गतिविधि शुरू होने पर इस्तेमाल करने के लिए ट्रांज़िशन ऐनिमेशन तय होता है. ज़्यादा जानकारी के लिए, ऐनिमेशन का इस्तेमाल करके गतिविधि शुरू करना
लेख पढ़ें.
Android सपोर्ट लाइब्रेरी, अन्य एट्रिब्यूट भी उपलब्ध कराती है. इनका इस्तेमाल करके, Theme.AppCompat से बढ़ाई गई थीम को कस्टमाइज़ किया जा सकता है. जैसे, पिछले उदाहरण में दिखाया गया colorPrimary एट्रिब्यूट. इन्हें लाइब्रेरी की
फ़ाइल attrs.xml में बेहतर तरीके से देखा जा सकता है.
सपोर्ट लाइब्रेरी में अलग-अलग थीम भी उपलब्ध हैं. हो सकता है कि आपको पिछले उदाहरण में दिखाई गई थीम के बजाय, इन्हें बढ़ाना हो. उपलब्ध थीम देखने के लिए,
लाइब्रेरी की
फ़ाइल themes.xmlसबसे सही जगह है.
वर्शन के हिसाब से स्टाइल जोड़ना
अगर Android के नए वर्शन में थीम के ऐसे एट्रिब्यूट जोड़े जाते हैं जिनका इस्तेमाल आपको करना है, तो उन्हें अपनी थीम में जोड़ा जा सकता है. साथ ही, यह भी पक्का किया जा सकता है कि वे पुराने वर्शन के साथ भी काम करें. इसके लिए, एक और styles.xml फ़ाइल
values डायरेक्ट्री में सेव की गई है, जिसमें
संसाधन वर्शन
क्वालिफ़ायर शामिल है:
res/values/styles.xml # themes for all versions res/values-v21/styles.xml # themes for API level 21+ only
values/styles.xml फ़ाइल में मौजूद स्टाइल, सभी वर्शन के लिए उपलब्ध होते हैं. इसलिए, values-v21/styles.xml में मौजूद आपकी थीम, इन्हें इनहेरिट कर सकती हैं. इसका मतलब है कि "बेस" थीम से शुरू करके और फिर वर्शन के हिसाब से स्टाइल में उसे बढ़ाकर, स्टाइल को डुप्लीकेट होने से बचाया जा सकता है.
उदाहरण के लिए, Android 5.0 (एपीआई लेवल 21) और इसके बाद के वर्शन के लिए, विंडो ट्रांज़िशन तय करने के लिए, नए एट्रिब्यूट का इस्तेमाल करना ज़रूरी है. इसलिए, res/values/styles.xml में मौजूद आपकी बेस थीम इस तरह दिख सकती है:
<resources> <!-- Base set of styles that apply to all versions. --> <style name="BaseAppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/primaryColor</item> <item name="colorPrimaryDark">@color/primaryTextColor</item> <item name="colorAccent">@color/secondaryColor</item> </style> <!-- Declare the theme name that's actually applied in the manifest file. --> <style name="AppTheme" parent="BaseAppTheme" /> </resources>
इसके बाद, res/values-v21/styles.xml में वर्शन के हिसाब से स्टाइल जोड़ें. जैसे:
<resources> <!-- extend the base theme to add styles available only with API level 21+ --> <style name="AppTheme" parent="BaseAppTheme"> <item name="android:windowActivityTransitions">true</item> <item name="android:windowEnterTransition">@android:transition/slide_right</item> <item name="android:windowExitTransition">@android:transition/slide_left</item> </style> </resources>
अब अपनी मेनिफ़ेस्ट फ़ाइल में AppTheme लागू किया जा सकता है. साथ ही, सिस्टम, हर सिस्टम वर्शन के लिए उपलब्ध स्टाइल चुनता है.
अलग-अलग डिवाइसों के लिए, दूसरे संसाधन इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, दूसरे संसाधन उपलब्ध कराना लेख पढ़ें.
विजेट के स्टाइल को पसंद के मुताबिक बनाना
फ़्रेमवर्क और सपोर्ट लाइब्रेरी में मौजूद हर विजेट का डिफ़ॉल्ट स्टाइल होता है. उदाहरण के लिए, जब सपोर्ट लाइब्रेरी से किसी थीम का इस्तेमाल करके अपने ऐप्लिकेशन को स्टाइल किया जाता है, तो
Button के किसी इंस्टेंस को
Widget.AppCompat.Button स्टाइल का इस्तेमाल करके स्टाइल किया जाता है. अगर किसी बटन पर विजेट का कोई दूसरा स्टाइल लागू करना है, तो लेआउट फ़ाइल में style एट्रिब्यूट का इस्तेमाल करके ऐसा किया जा सकता है. उदाहरण के लिए, यहां लाइब्रेरी के बॉर्डरलेस बटन स्टाइल को लागू किया गया है:
<Button style="@style/Widget.AppCompat.Button.Borderless" ... />
अगर सभी बटन पर यह स्टाइल लागू करना है, तो इसे अपनी थीम के buttonStyle में इस तरह तय किया जा सकता है:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="buttonStyle">@style/Widget.AppCompat.Button.Borderless</item> ... </style>
विजेट के स्टाइल को भी बढ़ाया जा सकता है. इसके लिए, किसी अन्य स्टाइल को बढ़ाने का तरीका ही अपनाएं, इसके बाद, अपने लेआउट या थीम में विजेट का कस्टम स्टाइल लागू करें.
अन्य संसाधन
थीम और स्टाइल के बारे में ज़्यादा जानने के लिए, यहां दिए गए अन्य संसाधन देखें:
ब्लॉग पोस्ट
- Android स्टाइलिंग: थीम बनाम स्टाइल
- Android स्टाइलिंग: आम थीम एट्रिब्यूट
- Android स्टाइलिंग: थीम एट्रिब्यूट को प्राथमिकता देना