2009-09-15 11 views
57

में बाहरी फ़ॉन्ट्स का उपयोग करें मैं अपने ऐप में बाहरी फोंट का उपयोग करना चाहता हूं। मैंने AssetManager का उपयोग करके fonts जोड़ने का प्रयास किया है लेकिन यह काम नहीं करता है।एंड्रॉइड

Typeface face; 

face = Typeface.createFromAsset(getAssets(), "font.otf"); 

textview.setTypeface(face); 

लेकिन इसके पाठ दिखाई नहीं दे ...

कृपया मुझे इस के साथ मदद: नीचे मेरी कोड है।

+1

..to सुथरा आप संपत्ति/फोंट फ़ोल्डर और पहुँच टाइपफ़ेस चेहरे में फोंट हो सकता है हो सकता है; चेहरा = Typeface.createFromAsset (getAssets(), "फोंट /" + "font.otf"); textview.setTypeface (चेहरा); –

उत्तर

63

AFAIK, एंड्रॉइड ओपनटाइप का समर्थन नहीं करता है। इसके बजाए एक ट्रू टाइप फ़ॉन्ट का प्रयोग करें।


अद्यतन: जाहिर ओपन टाइप अब, समर्थित है कम से कम कुछ हद तक। यह मूल रूप से समर्थित नहीं था, इसलिए आप एंड्रॉइड के जो भी संस्करणों का समर्थन करेंगे, इस पर आप अपने फ़ॉन्ट का पूरी तरह से परीक्षण करना चाहेंगे।

+0

तो आप कह रहे हैं कि मैं सही दिशा में हूं .. मुझे बस ओटीएफ की बजाय ttf फ़ाइल का उपयोग करने की आवश्यकता है ??? – mudit

+2

हां। अपने कोड को देखते हुए, आपको अपनी संपत्ति/निर्देशिका की जड़ में रहने के लिए अपने फ़ॉन्ट की आवश्यकता है, लेकिन अन्यथा यह एक संगत फ़ॉन्ट के साथ ठीक होना चाहिए। – CommonsWare

+0

त्रुटि संदेश आपके एमुलेटर और या तो एडीबी या ग्रहण के बीच कुछ संचार कठिनाई को इंगित करता है - इसमें फोंट के साथ कुछ लेना देना नहीं है। Http://commonsware.com/Android/Android-src-2_1.zip डाउनलोड करें और आपको एक एंड्रॉइड प्रोजेक्ट मिलेगा जो एक ट्रू टाइप फ़ॉन्ट लोड करना दिखाता है। यह भी ध्यान रखें कि एंड्रॉइड 1.6 अब आपको एपीके के बाहर से फोंट लोड करने देता है (उदाहरण के लिए, जिसे आप अलग से डाउनलोड करते हैं)। – CommonsWare

1

मुझे एक ही समस्या थी। मेरा फ़ॉन्ट एंड्रॉइड में काम नहीं कर रहा था, लेकिन मुझे इसे काम करने की ज़रूरत थी। फ़ॉन्ट संपादक का उपयोग करके, मैंने अपने फ़ॉन्ट से अक्षरों को उस फ़ॉन्ट में कॉपी किया जो FontSampler उदाहरण के साथ एंड्रॉइड-src-2_1 से आता है। यह पूरी तरह से काम किया।

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

9

एंड्रॉइड ओटीएफ का समर्थन करता है (मुझे यकीन नहीं है कि एसडीके संस्करण से यह निश्चित रूप से 1.6 के साथ काम करता है), मैं थोड़ी देर के लिए टाइपराइटर ओटीएफ फ़ॉन्ट का उपयोग कर रहा था लेकिन प्रतिपादन टीटीएफ संस्करण I के साथ सटीक के करीब कहीं नहीं है। (ऑनलाइन फ़ॉन्ट कनवर्टर के माध्यम से) का उपयोग कर समाप्त हो गया। आधार रेखा पूरी जगह पर थी (कुछ पत्र दूसरों की तुलना में पूर्ण 2 पिक्सेल अधिक थे), और एलसीडीआई फोन पर एचटीसी वाइल्डफायर जैसे बड़े पिक्सेल के कारण समस्या बहुत बड़ी है।

12

हमारे फ़ॉन्ट को आसानी से एक्सेस करने के लिए, हमें इसे अपने एप्लिकेशन के साथ बंडल करने की आवश्यकता है ताकि हमारा कोड इसे बाद में लोड कर सके। ऐसा करने के लिए, हम प्रत्यक्ष

हमारे परिसंपत्तियों में एक फ़ॉन्ट्स फ़ोल्डर अपनी .xml

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<TextView 
    android:id="@+id/DefaultFontText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textSize="30sp" 
    android:text="Here is some text." /> 
<TextView 
    android:id="@+id/CustomFontText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="30sp" 
    android:text="Here is some text."> 
    </TextView> 

लिखें निम्न कोड अपने जावा वर्ग

Typeface tf = Typeface.createFromAsset(getAssets(), 
      "fonts/BPreplay.otf"); 
    TextView tv = (TextView) findViewById(R.id.CustomFontText); 
    tv.setTypeface(tf); 
1

एंड्रॉयड में बना यह हो सकता है ओटीएफ और टीटीएफ प्रारूप दोनों का समर्थन करता है, मैंने उन दोनों का अनुभव किया।

tv3 = (TextView)findViewById(R.id.tv1); 
    Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/TRAJANPRO-BOLD.OTF"); 
    tv3.setTypeface(typeFace); 
इस

कदम मैं दोनों अंग्रेजी और स्थानीय भाषाओं

1

उपयोग Fontinator इसे समर्थन बूथ OTF और TTF फोंट के लिए इस्तेमाल किया है

यह एक Android पुस्तकालय है कस्टम फ़ॉन्ट्स उपयोग करने के लिए यह आसान बनाने के लिए, ।

https://github.com/svendvd/Fontinator

+0

यह बहुत अच्छा है, लेकिन अपने स्वयं के कस्टम लोगों को 1000+ टीवी बदल रहा है ... बहुत आसान नहीं –

-3

आप अपने TextView लिए कस्टम फ़ॉन्ट के विभिन्न प्रकार स्थापित करने के लिए सरल EasyFonts तीसरे पक्ष के पुस्तकालय का उपयोग कर सकते हैं।इस लाइब्रेरी का उपयोग करके आपको संपत्तियों/फोंट फ़ोल्डर में फोंट डाउनलोड करने और जोड़ने के बारे में चिंता करने की ज़रूरत नहीं है। टाइपफेस ऑब्जेक्ट सृजन के बारे में भी।

यह निम्नलिखित फ़ॉन्ट चेहरे प्रदान करता है।

  • रोबोटो
  • Droid Serif
  • Droid रोबोट
  • स्वतंत्रता
  • मज़ा उठाने वाले
  • एंड्रॉयड राष्ट्र
  • ग्रीन एवोकैडो
  • मान्यता

सीधे शब्दों में:

TextView myTextView = (TextView)findViewById(R.id.myTextView); 
myTextView.setTypeface(EasyFonts.robotoThin(this));