2016-01-03 9 views
7

मैं एक गैर अंग्रेजी भाषा में किसी ऐप बनाना चाहते हैं। तो मुझे गैर-अंग्रेजी भाषा में होने वाले टेक्स्टव्यू, तार और टोस्ट की आवश्यकता है। प्रत्येक पाठ के लिए टाइपफेस सेट करना बोझिल है। क्या डिफ़ॉल्ट फ़ॉन्ट सेट करने का कोई तरीका है? मैं अंग्रेजी में कुछ (ईमेल आईडी की तरह) का उल्लेख करने के तो मैं textview.settypeface (xyz) पद्धति का उपयोग कर सकते हैं जब।कैसे Android एप्लिकेशन की डिफ़ॉल्ट फ़ॉन्ट बदलने के लिए?

+0

आप इस लिंक को https://coderwall.com/p/qxxmaa/android-use-a-custom-font-everywhere –

उत्तर

9

एंड्रॉयड में कस्टम फोंट के लिए एक जाली पुस्तकालय नहीं है।

compile 'uk.co.chrisjenx:calligraphy:2.1.0' 

और फिर एक वर्ग है कि आवेदन एक लिखने के लिए इस कोड का विस्तार करना:

public class App extends Application { 
@Override public void onCreate() { super.onCreate(); 

CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() 
       .setDefaultFontPath("your font path") 
       .setFontAttrId(R.attr.fontPath) 
       .build() 
); 
} 

}

और गतिविधि कक्षा में

Gradle में आप इस लाइन लगाने की जरूरत है onCreate से पहले इस तरीके से रख:

@Override 
protected void attachBaseContext(Context newBase) { 
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); 

और इस तरह से अपनी मैनिफ़ेस्ट फ़ाइल लिखने में आखिरी बात:

<application 
android:name=".App" 

और यह अपने फ़ॉन्ट के लिए पूरे गतिविधि बदल जाएगा !. मैं सरल और साफ हूँ!

+1

विस्तृत चरणों के लिए धन्यवाद शिया का प्रयास कर सकते हैं। शानदार पुस्तकालय – suku

+1

यहां उस व्यक्ति का एक वीडियो है जिसने पुस्तकालय बनाया है यह बताता है कि यह कैसे काम करता है https://www.youtube.com/watch?v=WZkZVCWxIXs – suku

+2

धन्यवाद आदमी, आप मुझे –

1

आप मुख्य रूप से 3 तरीकों से इस लक्ष्य को हासिल कर सकते हैं। एक तरह से यानी एक कस्टम TextView बना सकते हैं और है कि हर जगह उल्लेख करने के लिए, होगा:

public class TypefacedTextView extends TextView { 

    public TypefacedTextView(Context context, AttributeSet attrs) { 
     super(context, attrs); 

     Typeface typeface = Typeface.createFromAsset(context.getAssets(), fontName); 
     setTypeface(typeface); 
    } 
} 

और View.xml

<packagename.TypefacedTextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Hello"/> 

एक और तरीका है अंदर, GitHub में शक्तिशाली Calligraphy पुस्तकालय का प्रयोग है। custom fonts

यहां एक नमूना है कि यह कैसे उपयोग करने के लिए है: see this

और अंत में, आप अपने खुद के फोंट के साथ चूक ओवरराइड कर सकते हैं, see this

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