Android上的自定义字体

我想在Android应用程序中使用自定义字体,但使用自定义字体似乎很痛苦?! 我可以通过将程序添加到每个TextView中来以编程方式设置自定义字体 – >许多样板代码。 我可以创build一个新的类CustomTextView扩展TextView,并在构造函数中添加setTypeface – >没有xml上下文感知属性的帮助了。

是否有另一种方式来设置自定义字体? 通过XML,风格,主题?

提前致谢!

PS是否有可能通过XML设置下划线?

Solutions Collecting From Web of "Android上的自定义字体"

您可以在资产/字体下包含自定义字体,然后使用代码

https://github.com/browep/AndroidCustomFontWidgets/

你可以在你的XML中指定字体,例如

<com.github.browep.customfonts.view.FontableTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="This is in a custom font" app:font="MyFont-Bold.otf" /> 

代码支持FontableTextView和FontableButton,但是如果需要的话,可以很容易地扩展来支持其他的widgettypes。

使用此代码更改字体textview ..

 TextView newfont; newfont=(TextView) findViewById(R.id.textView1); Typeface font=Typeface.createFromAsset(getAssets(), "fonts/DejaVuSerif-Italic.ttf"); newfont.setTypeface(font); newfont.setText("This is the new font Text"); 

从网站下载DejaVuSerif-Italic.ttf文件,并放入资产文件夹中的字体文件夹。