如何更改Android应用程序的默认字体?

我想用非英语的语言来制作一个应用程序。 所以我需要textviews,string和敬酒在非英语语言。 为每个文本设置字体很麻烦。 有没有办法设置一个默认的字体? 当我必须引用英文的东西(如电子邮件ID),那么我可以使用textview.settypeface(xyz)方法。

Solutions Collecting From Web of "如何更改Android应用程序的默认字体?"

在android中有自定义字体的格栅库: 自定义字体

这里是一个如何使用它的例子。

在gradle中,你需要把这一行:

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

然后创build一个扩展应用程序的类来写这段代码:

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

}

并且在activity类中把这个方法放在onCreate之前:

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

而清单文件中的最后一件事是这样写的:

 <application android:name=".App" 

它会改变整个活动到你的字体! 我简单而干净!

你可以主要通过3种方式实现。 一种方法是创build一个自定义的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库。 看到这个

最后,你可以用自己的字体覆盖默认值, 看看这个