2011-08-16 10 views
6

मेरे पास कुछ कस्टम वरीयता आइटम हैं - एक जो वर्तमान में चयनित रंग का एक स्वैच प्रदर्शित करता है, और दूसरा जो थंबनेल प्रदर्शित करता है।एंड्रॉइड वरीयता शीर्षक/सारांश पाठ शैली

मैं इन कि बहुत अच्छी तरह से मेल खाए के लिए एक कस्टम लेआउट है, और पाया है कि मैं एंड्रॉयड का उपयोग करके पाठ उपस्थिति मैच कर सकते हैं: textAppearance = "एंड्रॉयड: attr/textAppearanceLarge" TextView के एक्सएमएल के हिस्से के रूप। समस्या यह है कि, जबकि ये आम तौर पर ठीक दिखते हैं, उन्हें 'आधिकारिक' वरीयताओं का उपयोग नहीं होना चाहिए, क्योंकि रंग कुछ उपकरणों पर गलत हो जाते हैं। विशेष रूप से मैं अपने आवेदन को नुक्कड़ रंग में पोर्ट कर रहा हूं, और यह काले पृष्ठभूमि/हल्के भूरे रंग के टेक्स्ट की बजाय वरीयता स्क्रीन पर हल्के भूरे रंग की पृष्ठभूमि और काले रंग का रंग का उपयोग करता है। इस स्थिति में मेरा टेक्स्ट रंग वही रहता है, लेकिन मेरा बाकी लेआउट उचित रूप से थीमबद्ध है।

मैं वास्तव में अनिश्चित हूं कि मुझे अपना टेक्स्ट 'आधिकारिक' थीम के साथ मिलान करने के लिए क्या करना है। क्या मुझे getStyledAttributes का उपयोग करना चाहिए और चीजों को सेट करने के लिए मेरा लेआउट चलाना चाहिए? अब तक उपयोग करने पर मैंने जो ट्यूटोरियल देखे हैं, वे वास्तव में परेशान हैं, और ऐसा लगता है कि एक टेक्स्ट एपियरेंस या स्टाइल होना चाहिए जिसे मैं एक्सएमएल में ठीक करने के लिए सेट कर सकता हूं।

उत्तर

0

आपको अपनी खुद की एप्लिकेशन थीम को परिभाषित करना होगा जो आपको इच्छित आधिकारिक थीम से प्राप्त होता है। असल में, आप उदाहरण के लिए Theme.Light को विस्तारित करने के लिए एक विषय MyTheme परिभाषित कर सकते हैं।

एक res/values/styles.xml फ़ाइल इस तरह बनाएँ:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyTheme" parent="@android:style/Theme.Light"> 
    </style> 
</resources> 

उसके बाद, आप सिर्फ अपने AndroidManifest.xml की application संस्था की android:theme विशेषता का उपयोग कर अपने विषय को लागू करने के लिए है:

<application android:theme="@style/MyTheme"> 
    [...] 
</application>