स्टाइल और थीम

लिखने का तरीका आज़माएं
Android के लिए, Jetpack Compose को यूज़र इंटरफ़ेस (यूआई) टूलकिट के तौर पर सुझाया जाता है. Compose में थीम इस्तेमाल करने का तरीका जानें.

Android पर स्टाइल और थीम की मदद से, अपने ऐप्लिकेशन के डिज़ाइन की जानकारी को यूआई के स्ट्रक्चर और व्यवहार से अलग किया जा सकता है. यह वेब डिज़ाइन में स्टाइलशीट की तरह ही काम करती है.

स्टाइल, एट्रिब्यूट का एक कलेक्शन होता है. इससे किसी एक View के दिखने का तरीका तय होता है. स्टाइल में एट्रिब्यूट तय किए जा सकते हैं. जैसे, फ़ॉन्ट का रंग, साइज़, बैकग्राउंड का रंग वगैरह.

थीम, एट्रिब्यूट का एक कलेक्शन होता है. यह सिर्फ़ किसी एक व्यू पर नहीं, बल्कि पूरे ऐप्लिकेशन, गतिविधि या व्यू की हैरारकी पर लागू होता है. कोई थीम लागू करने पर, ऐप्लिकेशन या गतिविधि का हर व्यू, उस थीम के हर एट्रिब्यूट को लागू करता है जो उस पर काम करता है. थीम, स्टेटस बार और विंडो के बैकग्राउंड जैसे ऐसे एलिमेंट पर भी स्टाइल लागू कर सकती हैं जो दिखते नहीं हैं.

स्टाइल और थीम, res/values/ में स्टाइल रिसोर्स फ़ाइल में बताई जाती हैं. आम तौर पर, इसका नाम styles.xml होता है.

पहली इमेज. एक ही गतिविधि पर दो थीम लागू की गईं: Theme.AppCompat (बाएं) और Theme.AppCompat.Light (दाएं).

थीम बनाम स्टाइल

थीम और स्टाइल में कई चीज़ें एक जैसी होती हैं, लेकिन इनका इस्तेमाल अलग-अलग कामों के लिए किया जाता है. थीम और स्टाइल का स्ट्रक्चर एक जैसा है. यह एक की-वैल्यू पेयर होता है, जो रिसॉर्स से एट्रिब्यूट को मैप करता है.

स्टाइल, किसी खास तरह के व्यू के लिए एट्रिब्यूट तय करता है. उदाहरण के लिए, एक स्टाइल किसी बटन के एट्रिब्यूट के बारे में बता सकती है. स्टाइल में बताए गए हर एट्रिब्यूट को लेआउट फ़ाइल में सेट किया जा सकता है. किसी स्टाइल में सभी एट्रिब्यूट को निकालने से, उन्हें कई विजेट में इस्तेमाल करना और उन्हें मैनेज करना आसान हो जाता है.

थीम, नाम वाले संसाधनों के कलेक्शन को तय करती है. इनका रेफ़रंस, स्टाइल, लेआउट, विजेट वगैरह से दिया जा सकता है. थीम, Android संसाधनों के लिए colorPrimary जैसे सिमैंटिक नाम देती हैं.

स्टाइल और थीम एक साथ काम करती हैं. उदाहरण के लिए, आपके पास ऐसी स्टाइल हो सकती है जिसमें बताया गया हो कि बटन का एक हिस्सा colorPrimary है और दूसरा हिस्सा colorSecondary है. उन रंगों की असल परिभाषाएं, थीम में दी गई होती हैं. जब डिवाइस नाइट मोड में चला जाता है, तो आपका ऐप्लिकेशन अपनी "हल्की" थीम से "गहरे रंग वाली" थीम पर स्विच कर सकता है. साथ ही, उन सभी संसाधनों के नामों की वैल्यू बदल सकता है. आपको स्टाइल बदलने की ज़रूरत नहीं है, क्योंकि स्टाइल में सिमैंटिक नामों का इस्तेमाल हो रहा है, न कि खास रंग की परिभाषाओं का.

थीम और स्टाइल के साथ काम करने के तरीके के बारे में ज़्यादा जानने के लिए, Android स्टाइल: थीम बनाम स्टाइल ब्लॉग पोस्ट देखें.

स्टाइल बनाना और लागू करना

नया स्टाइल बनाने के लिए, अपने प्रोजेक्ट की res/values/styles.xml फ़ाइल खोलें. आपको जो भी स्टाइल बनानी है उसके लिए, यह तरीका अपनाएं:

  1. एक <style> एलिमेंट जोड़कर, उसे अलग नाम दें.
  2. आपको जिन स्टाइल एट्रिब्यूट की जानकारी देनी है उनके लिए <item> एलिमेंट जोड़ें. हर आइटम में मौजूद name किसी ऐसे एट्रिब्यूट के बारे में बताता है जिसे आम तौर पर, आपके लेआउट में एक्सएमएल एट्रिब्यूट के तौर पर इस्तेमाल किया जाता है. <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 Support Library से इनहेरिट करें. सहायता लाइब्रेरी में मौजूद स्टाइल, हर वर्शन में उपलब्ध यूज़र इंटरफ़ेस (यूआई) एट्रिब्यूट के लिए हर स्टाइल को ऑप्टिमाइज़ करके, साथ काम करने की सुविधा देते हैं. सहायता लाइब्रेरी के स्टाइल का नाम, अक्सर प्लैटफ़ॉर्म के स्टाइल से मिलता-जुलता होता है. हालांकि, इसमें 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 एट्रिब्यूट की मदद से स्टाइल लागू करने के बजाय, AndroidManifest.xml फ़ाइल में <application> टैग या <activity> टैग पर android:theme एट्रिब्यूट की मदद से थीम लागू की जाती है.

उदाहरण के लिए, पूरे ऐप्लिकेशन पर Android Support Library की 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 सपोर्ट लाइब्रेरी के वर्शन 22.1 से शुरू करते हुए, अपनी लेआउट फ़ाइल के किसी व्यू में भी android:theme एट्रिब्यूट को तय किया जा सकता है. इससे उस व्यू और किसी भी चाइल्ड व्यू की थीम में बदलाव होता है, जिससे आपके इंटरफ़ेस के किसी खास हिस्से में थीम के रंग पटल को बदलने में मदद मिलती है.

पिछले उदाहरणों में, Theme.AppCompat जैसी थीम को लागू करने का तरीका बताया गया है. यह थीम, Android Support Library से मिलती है. हालांकि, आम तौर पर, अपने ऐप्लिकेशन के ब्रैंड के हिसाब से थीम को पसंद के मुताबिक बनाया जाता है. ऐसा करने का सबसे अच्छा तरीका यह है कि सहायता लाइब्रेरी से इन स्टाइल को एक्सटेंड करें और कुछ एट्रिब्यूट को बदलें. इसके बारे में अगले सेक्शन में बताया गया है.

स्टाइल की हैरारकी

Android, अपने पूरे Android ऐप्लिकेशन में एट्रिब्यूट सेट करने के कई तरीके उपलब्ध कराता है. उदाहरण के लिए, एट्रिब्यूट को सीधे लेआउट में सेट किया जा सकता है, व्यू में स्टाइल लागू की जा सकती है, और लेआउट पर थीम लागू की जा सकती है. साथ ही, प्रोग्राम के हिसाब से एट्रिब्यूट भी सेट किए जा सकते हैं.

अपने ऐप्लिकेशन को स्टाइल करने का तरीका चुनते समय, Android के स्टाइल के क्रम को ध्यान में रखें. आम तौर पर, एक जैसा अनुभव देने के लिए, थीम और स्टाइल का ज़्यादा से ज़्यादा इस्तेमाल करें. अगर एक ही एट्रिब्यूट को कई जगहों पर डाला जाता है, तो नीचे दी गई सूची से यह तय होता है कि आखिर में कौनसे एट्रिब्यूट लागू किए जाएंगे. सूची को सबसे ज़्यादा प्राथमिकता से लेकर सबसे कम प्राथमिकता के हिसाब से क्रम में लगाया जाता है.

  1. TextView से बनी क्लास पर टेक्स्ट स्पैन का इस्तेमाल करके, वर्ण या पैराग्राफ़-लेवल की स्टाइल लागू करना.
  2. प्रोग्राम के हिसाब से, अपने-आप होने वाली प्रोसेस की मदद से एट्रिब्यूट लागू करना.
  3. अलग-अलग एट्रिब्यूट को सीधे किसी व्यू पर लागू करना.
  4. किसी व्यू पर स्टाइल लागू करना.
  5. डिफ़ॉल्ट स्टाइलिंग.
  6. व्यू, गतिविधि या अपने पूरे ऐप्लिकेशन के कलेक्शन पर थीम लागू करना.
  7. व्यू के हिसाब से स्टाइल लागू करना. जैसे, TextView पर TextAppearance सेट करना.

दूसरी इमेज. 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 के नए वर्शन में ऐसे थीम एट्रिब्यूट जोड़े जाते हैं जिनका आपको इस्तेमाल करना है, तो उन्हें अपनी थीम में जोड़ा जा सकता है. ऐसा करने पर, वे पुराने वर्शन के साथ भी काम करते रहेंगे. इसके लिए, आपको values डायरेक्ट्री में सेव की गई एक और styles.xml फ़ाइल की ज़रूरत होगी. इसमें रिसॉर्स वर्शन क्वालिफ़ायर शामिल होना चाहिए:

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 लागू किया जा सकता है. इसके बाद, सिस्टम हर सिस्टम वर्शन के लिए उपलब्ध स्टाइल चुन लेता है.

अलग-अलग डिवाइसों के लिए वैकल्पिक रिसॉर्स इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, वैकल्पिक रिसॉर्स उपलब्ध कराना लेख पढ़ें.

विजेट की स्टाइल को पसंद के मुताबिक बनाना

फ़्रेमवर्क और सहायता लाइब्रेरी में मौजूद हर विजेट का एक डिफ़ॉल्ट स्टाइल होता है. उदाहरण के लिए, जब Support Library की किसी थीम का इस्तेमाल करके अपने ऐप्लिकेशन को स्टाइल किया जाता है, तो 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>

किसी भी अन्य स्टाइल को बड़ा करने की तरह ही, विजेट स्टाइल को भी बड़ा किया जा सकता है. इसके बाद, अपने लेआउट या थीम में अपनी पसंद के मुताबिक विजेट स्टाइल लागू किया जा सकता है.

अन्य संसाधन

थीम और स्टाइल के बारे में ज़्यादा जानने के लिए, यहां दिए गए अन्य संसाधन देखें:

ब्लॉग पोस्ट