2012-11-16 20 views
18

मैं एक Android एप्लिकेशन लिख रहा हूँ और मैं अपने ऐप के विषय में परिवर्तन करने के लिए इच्छुक रहा शैलियों और विषयों में पाठ उपस्थिति बदल रहा है।एक Android ऐप्लिकेशन

मैं एक विषय का उपयोग करके एप्लिकेशन की पृष्ठभूमि का रंग बदलने के लिए कामयाब रहे, लेकिन मैं डिफ़ॉल्ट पाठ स्वरूप बदलने के लिए संघर्ष कर रहा हूँ।

यह मेरी शैलियों.xml संसाधन फ़ाइल है।

<resources> 
    <style name="QTheme" parent="android:Theme.Light"> 
     <item name="android:windowBackground">@color/q_green</item> 
     <item name="android:colorBackground">@color/q_green</item> 
     <item name="android:textAppearance">@style/QText</item> 
    </style> 

    <color name="q_green">#008000</color> 
    <color name="white">#FFFFFF</color> 

    <style name="QText" parent="@android:style/TextAppearance.Medium"> 
     <item name="android:textSize">20sp</item> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textFont">Verdana</item> 
    </style> 
</resources> 

और सिर्फ जांच करने के लिए, यह मेरा TextViews मैं अपने लेआउट फ़ाइल में ऊपर शैली का उपयोग करना चाहते में से एक का एक उदाहरण है।

<TextView 
    android:id="@+id/txtDevice" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:text="@string/device" 
/> 

क्या कोई देख सकता है कि मैं कहां गलत हो रहा हूं?

+6

तुम बस (जो 'TextView' में बदलाव नहीं करेगी) अपने विषय में' TextAppearance.Medium' शैली overrided गए हैं। यदि आप 'टेक्स्ट व्यू' लुक को संशोधित करना चाहते हैं तो अपनी थीम में 'textViewStyle' शैली विशेषता को ओवरराइड करें। या आप 'android: textAppearance' – Luksprog

+0

धन्यवाद का उपयोग करके अपनी कस्टम शैली लागू कर सकते हैं। मैंने आइटम नाम को android.textViewStyle में बदल दिया और यह चाल चल रहा था। हालांकि, मेरे पाठकों के न केवल मेरे स्पिनरों के अंदर तेहे पाठ को बदल दिया गया। क्या अंतर करने का कोई तरीका है? –

+0

मुझे यकीन नहीं है। अगर मैं गलत नहीं कर रहा हूँ 'Spinner' के' TextView' आइटम एक अलग शैली (जो अभी भी 'TextView' शैली से विरासत),' विषय में spinnerItemStyle' विशेषता के आधार पर बताया है। आप इसे '@android: शैली/विजेट .extView.SpinnerItem' पर सेट करना चाहते हैं और देखें कि यह कैसे जाता है। – Luksprog

उत्तर

36

बस पूर्णता के लिए, और लुसप्रोग को पूर्ण क्रेडिट के लिए, यह अब मेरा है संसाधन फ़ाइल

<resources> 
    <style name="QTheme" parent="android:Theme.Light"> 
     <item name="android:windowBackground">@color/q_green</item> 
     <item name="android:colorBackground">@color/q_green</item> 
     <item name="android:textViewStyle">@style/QText</item> 
    </style> 

    <color name="q_green">#008000</color> 
    <color name="white">#FFFFFF</color> 

    <style name="QText" parent="@android:style/TextAppearance.Medium"> 
     <item name="android:textSize">20sp</item> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:typeface">sans</item> 
    </style> 
</resources> 

फ़ॉन्ट सहायता के लिए पद्म कुमार को भी धन्यवाद।

+0

काम नहीं करता है जो आपने बदला है? एंड्रॉइड के अलावा: टाइपफेस! –

+0

@ शैली/QText

+0

घास क्या आप मुझे एंड्रॉइड बता सकते हैं: textViewStyle यह विशेषता एंड्रॉइड में है? –

1

// अपनी शैली से इस लाइन को हटाने के इस

<item name="android:textFont">Verdana</item> 

की तरह कोई विशेषता नहीं है // आप शैलियों

settting के लिए // फ़ॉन्ट शैली को बदलने

<item name="android:typeface">monospace</item> 

के लिए टाइपफेस दे सकते हैं

<TextView 
    android:id="@+id/txtDevice" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    style="@style/QText" 
    android:text="@string/device" 
/> 
+2

वहाँ एक रास्ता तो मैं हर पाठ –

+0

नहीं, तुम एक्सएमएल के माध्यम से फ़ॉन्ट शैली निर्धारित नहीं कर सकते के लिए शैली सेट की जरूरत नहीं है मैं विषय के लिए शैली जोड़ सकते हैं। कोड के माध्यम से टाइपफेस सेट करने की जरूरत है। –

+0

उस शैली को TextView में जोड़ना –

संबंधित मुद्दे