我想要实现的是将style
属性添加到我的axml
文件中,并从Asset
加载自定义字体。
我知道我可以像这样加载内置字体(style.xml
):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CodeFont" parent="@android:style/TextAppearance.Medium">
<item name="android:typeface">monospace</item>
</style>
</resources>
并使用它(Main.axml
):
<TextView
style="@style/CodeFont"
local:MvxBind="Text Hello" />
我知道我也可以创建MyCustomTextView
扩展TextView
并通过SetTypeface
方法设置字体,但我想在style
属性中使用自定义字体。
比如:
<resources>
<style name="CodeFont" parent="@android:style/TextAppearance.Medium">
<item name="android:typeface">MyCustomFontLoadedFromAsset</item>
</style>
</resources>
这可能吗(以及如何做到)?
5条答案
按热度按时间i2loujxw1#
没有一种方法可以直接开箱即用。有一个名为Calligraphy的库可以让你这样做。它可以在API 7+上工作
我还看到了一个使用反射覆盖serif/sans的技巧,这样您就可以在
styles.xml
中定义它们:Is it possible to set a custom font for entire of application?,尽管我推荐第一种方法。ht4b089n2#
我知道这是一个老问题,但是现在您可以使用
fontFamily
属性来实现这一点(参见文档):显然,您需要事先定义
fontFamily
。要这样做,请参阅文档。o8x7eapl3#
wyyhbhjk4#
soat7uwm5#