आप android के themes.xml
, styles.xml
, और colors.xml
से स्रोत पर देख सकते हैं। Color.xml से आप जो एक चीज देखते हैं वह यह है कि बहुत सारे रंग परिभाषित नहीं हैं। ऐसा इसलिए है क्योंकि अधिकांश विजेट 9-पैच फ़ाइलों के माध्यम से किए जाते हैं।
बटन शैली:
223 <style name="Widget.Button">
224 <item name="android:background">@android:drawable/btn_default</item>
225 <item name="android:focusable">true</item>
226 <item name="android:clickable">true</item>
227 <item name="android:textAppearance">?android:attr/textAppearanceSmallInverse</item>
228 <item name="android:textColor">@android:color/primary_text_light</item>
229 <item name="android:gravity">center_vertical|center_horizontal</item>
230 </style>
काम पृष्ठभूमि रंग बदलने के लिए किए गए कार्य की सभी btn_default
Drawable
में किया जाता है।
btn_default.xml के स्रोत:
17 <selector xmlns:android="http://schemas.android.com/apk/res/android">
18 <item android:state_window_focused="false" android:state_enabled="true"
19 android:drawable="@drawable/btn_default_normal" />
20 <item android:state_window_focused="false" android:state_enabled="false"
21 android:drawable="@drawable/btn_default_normal_disable" />
22 <item android:state_pressed="true"
23 android:drawable="@drawable/btn_default_pressed" />
24 <item android:state_focused="true" android:state_enabled="true"
25 android:drawable="@drawable/btn_default_selected" />
26 <item android:state_enabled="true"
27 android:drawable="@drawable/btn_default_normal" />
28 <item android:state_focused="true"
29 android:drawable="@drawable/btn_default_normal_disable_focused" />
30 <item
31 android:drawable="@drawable/btn_default_normal_disable" />
32 </selector>
प्रत्येक उनमें से एक एक 9-पैच फ़ाइल है। समस्या यह है कि वे पीएनजी हैं। रंग छवि फ़ाइलों में बनाए गए हैं और कहीं भी परिभाषित नहीं हैं। जैसा कि आपने देखा है कि इन छवियों को प्रतिस्थापित किया जा सकता है और देखो बदलता है।
दुर्भाग्य से, आप जो चाहते हैं वह संभव नहीं है। आपको जाने के लिए एक रंग चुनना होगा। यह रंग शायद आपके शेष एप्लिकेशन के साथ फिट करने के लिए चुना जाना चाहिए। क्षमा करें :(
यह एक अच्छा सवाल है और मैं कर रहा हूँ डर है कि कोई समाधान नहीं है। वास्तव में दुखी है। – mad
इस प्रश्न के बाद से 5 साल हो गए हैं ... वर्तमान उत्तर अब यहां स्थित है: http://stackoverflow.com/questions/12375766/how-to-get-background- रंग-से-वर्तमान-थीम-प्रोग्रामेटिक रूप से (वह पहला जवाब निश्चित रूप से काम करता है ...) – pbarranis