2012-11-28 11 views
11

पर काम नहीं कर रहा है, मैं एक ऐप बना रहा हूं जहां कभी-कभी मैं दिखाने के लिए डेटा के आधार पर इटालिक्स में टेक्स्टव्यू का फ़ॉन्ट बदलना चाहता हूं।Typeface.ITALIC गैलेक्सी नोट 2

मेरी गैलेक्सी Nexus पर यह बस

textView.setTypeface(font, iWantItalics ? Typeface.ITALIC : Typeface.NORMAL); 

का मामला है और यह खूबसूरती से काम करता है।

समस्या यह है कि मुझे परीक्षण करने के लिए एक नया गैलेक्सी नोट II मिला है और ... नहीं, कोई इटालिक्स नहीं है।

पढ़ना Samsung devices supporting setTypeface(Typeface.Italic)? मुझे लगता है कि यह नोट के एंड्रॉइड बिल्ड पर एक बग है, इसलिए रोबोटो फ़ॉन्ट में कोई इटालिक्स नहीं है। मैंने उस धागे और अन्य समान (Typeface.defaultFromStyle(Typeface.ITALIC), Typeface.create(null, Typeface.ITALIC), आदि) पर हर सलाह की कोशिश की है।

मेरे समस्या यह है कि वैकल्पिक हल है कि धागे से पुरुष का इस्तेमाल किया assets निर्देशिका में रोबोटो टीटीएफ को कॉपी किया गया था और वहाँ से फ़ॉन्ट लेकिन क्या अपने फोन में एक और डिफ़ॉल्ट फ़ॉन्ट के साथ लोगों के बारे में बनाने? मैं रोबोटो को उन पर मजबूर नहीं करना चाहता हूं या इससे भी बदतर, उस अन्य फ़ॉन्ट के लिए जब टाइपफ़ेस सामान्य है और रोबोट इटालिक्स अन्यथा है।

क्या कोई मेरे लिए कोई विचार है? धन्यवाद।

+0

मैंने आपके द्वारा संदर्भित प्रश्न बनाया है। इसके लायक होने के लिए मुझे उन उपकरणों से निपटने का कोई और तरीका नहीं मिला जो सही तरीके से काम नहीं करते थे। बुरे समाचार के लिए खेद है। मुझे उम्मीद है कि कोई बेहतर समाधान के साथ आगे आता है हालांकि = – FoamyGuy

+0

इस तरह के एक उच्च अंत और ब्रांड नए डिवाइस में ऐसी बेवकूफ बग रखना अविश्वसनीय है, है ना? – Serandel

+0

मुझे सैमसंग मंचों में एक डेवलपर का ध्यान मिला है, इसलिए उम्मीद है। :) http://developer.samsung.com/forum/thread/typefaceitalic-not-working-on-galaxy-note-2/77/209984 – Serandel

उत्तर

14

इस बग के लिए समाधान के लिए, आप पाठ इटैलिक इस तरह से (जो टूटे हुए सैमसंग उपकरणों पर काम करने लगता है) सेट कर सकते हैं:

textView.setText(setTextStyleItalic(textView.getText()); 

और आप इस विधि की जरूरत है:

public static CharSequence setTextStyleItalic(CharSequence text) { 
    final StyleSpan style = new StyleSpan(Typeface.ITALIC); 
    final SpannableString str = new SpannableString(text); 
    str.setSpan(style, 0, text.length(), 0); 
    return str; 
} 
+0

एक आकर्षण की तरह काम करता है। अच्छा काम! – Serandel

4

एक और आसान समाधान ऐसा करने के लिए है:

myTextView.setText(Html.fromHtml("<i>" + myString + "</i>")); 
संबंधित मुद्दे