2016-01-03 26 views
7

İngilizce olmayan bir dilde bir uygulama yapmak istiyorum. Bu yüzden İngilizce olmayan bir dilde olmak için metin görüntülerine, dizelere ve tostlara ihtiyacım var. Her metnin yazı tipini ayarlamak hantaldır. Varsayılan yazı tipi ayarlamanın bir yolu var mı? İngilizce bir şeye başvurmam gerektiğinde (e-posta kimliği gibi), textview.settypeface (xyz) yöntemini kullanabilirim.Android uygulamasının varsayılan yazı tipi nasıl değiştirilir?

+0

Bu bağlantıyı deneyebilirsiniz https://coderwall.com/p/qxxmaa/android-use-a-custom-font-everywhere –

cevap

9

android özel yazı tipleri için bir ızgara kütüphane bulunmaktadır.

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

ve sonra bu kod uygulamayı bir yazma genişleten bir sınıf yapmak:

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() 
); 
} 

}

ve etkinlik sınıfında gradle olarak

bu çizgiyi koymak gerekir Bu yöntemi onCreate'dan önce koy:

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

ve bu gibi bildirim dosyası yazma son şey:

<application 
android:name=".App" 

ve sizin yazı için tüm aktiviteyi değişecek !. Ben basit ve temizim!

+1

Ayrıntılı adımlar için Shia teşekkürler. Harika kütüphane. – suku

+1

Kitaplığı yapan adamın videosu nasıl çalıştığını açıklayan bir video. Https://www.youtube.com/watch?v=WZkZVCWxIXs – suku

+2

Teşekkürler, beni kurtarırsınız –

1

Bunu başlıca 3 şekilde gerçekleştirebilirsiniz. tek yönlü, yani özel bir TextView oluşturabilir ve her yerde başvurmak olacaktır:

public class TypefacedTextView extends TextView { 

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

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

ve View.xml

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

başka şekilde içeride, github güçlü Calligraphy kütüphane kullanmaktır. İşte

custom fonts nasıl kullanılacağını bir örnektir: see this

Ve nihayet, kendi yazı ile varsayılan değerleri geçersiz kılabilirsiniz, see this

İlgili konular