समझना कि एंड्रॉइड शैलियों कैसे काम करती है थोड़ा गन्दा हो सकती है।
मैं यह बताने की कोशिश करूंगा कि उदाहरण के आधार पर मूल कार्य प्रवाह कैसे होगा।
मान लीजिए कि आप जानना चाहते हैं कि बटन के लिए डिफ़ॉल्ट पृष्ठभूमि क्या है। यह या तो एक साधारण रंग (असंभव) या एक ड्रॉबल (कई प्रकार के ड्रॉबल्स हैं) हो सकता है।
एंड्रॉइड में थीम्स हैं। एक विषय मूल रूप से परिभाषित करता है कि कौन सी शैली किस विजेट पर लागू होती है। इसलिए, हमारा पहला चरण डिफ़ॉल्ट एंड्रॉइड थीम ढूंढना है।
आप android-sdk\platforms\android-15\data\res\values\themes.xml
के अंतर्गत देख इस विषय फ़ाइल में button
लिए खोज करें।
<!-- Button styles -->
<item name="buttonStyle">@android:style/Widget.Button</item>
इसका मतलब है कि विषय बटन शैली Widget.Button
लागू होता है:
आप कुछ इस तरह मिल जाएगा।
ठीक है, अब चलिए शैली Widget.Button
ढूंढें।
सभी डिफ़ॉल्ट Android शैली फ़ाइल android-sdk\platforms\android-15\data\res\values\styles.xml
में परिभाषित कर रहे हैं अब के लिए Widget.Button
खोज आप कुछ इस तरह मिल जाएगा:
<style name="Widget.Button">
<item name="android:background">@android:drawable/btn_default</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
<item name="android:textAppearance">?android:attr/textAppearanceSmallInverse</item>
<item name="android:textColor">@android:color/primary_text_light</item>
<item name="android:gravity">center_vertical|center_horizontal</item>
</style>
दिलचस्प लाइन है:
<item name="android:background">@android:drawable/btn_default</item>
इसका मतलब है कि btn_default
नामक एक खींचने योग्य बटन बटन के रूप में सेट किया गया है।
अब हमें android-sdk\platforms\android-15\data\res
के तहत ड्रॉइंग फ़ोल्डरों में से एक में btn_default.*
नाम की एक फ़ाइल ढूंढनी होगी।
यह या तो एक छवि (बहुत ही असंभव) या btn_default.xml
जैसी xml फ़ाइल हो सकती है।
एक छोटा सा के बाद आप फ़ाइल android-sdk\platforms\android-15\data\res\drawable\btn_default.xml
वह कुछ इस तरह होता है मिलेगा खोज:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/btn_default_normal" />
<item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/btn_default_normal_disable" />
<item android:state_pressed="true" android:drawable="@drawable/btn_default_pressed" />
<item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/btn_default_selected" />
<item android:state_enabled="true" android:drawable="@drawable/btn_default_normal" />
<item android:state_focused="true" android:drawable="@drawable/btn_default_normal_disable_focused" />
<item android:drawable="@drawable/btn_default_normal_disable" />
</selector>
अब आप को समझने के लिए कि यह एक चयनकर्ता drawable (कई drawable प्रकारों में से एक है)। यह चयनकर्ता बटन स्थिति के आधार पर अलग-अलग पृष्ठभूमि चुनता है। उदाहरण के लिए, यदि बटन दबाया जाता है, तो इसकी एक अलग पृष्ठभूमि होती है।
कोई भी डिफ़ॉल्ट स्थिति को देखने दें।
<item android:state_enabled="true" android:drawable="@drawable/btn_default_normal" />
यह एक drawable btn_default_normal
बुलाया लागू होता है।
अब हमें यह आकर्षित करने की आवश्यकता है।
फिर से, हमें android-sdk\platforms\android-15\data\res
के तहत ड्रॉइंग फ़ोल्डरों में से एक में btn_default_normal.*
नाम की एक फ़ाइल ढूंढनी होगी।
यह फिर से एक छवि या एक xml फ़ाइल हो सकता है जैसे btn_default_normal.xml
।
आपको विभिन्न संकल्पों के लिए विभिन्न ड्रॉइंग फ़ोल्डर्स में 'btn_default_normal.9.png' नामक कई फाइलें मिलेंगी।
:) अब आप जानते हैं कि btn_default_normal.9.png
बटन पृष्ठभूमि के रूप में सेट है।
धन्यवाद !! बहुत अच्छी तरह से समझाया। – Zombie
वाह, यह एक अच्छा जवाब था :) – theapache64