有两种方法可以“全局”覆盖android中使用的字体。
创建一个扩展视图对象并设置类型face的类,即
public class TextViewRobotoRegular extends TextView {
public TextViewRobotoRegular(Context context, AttributeSet attrs) {
super(context, attrs);
if (!isInEditMode()) {
Typeface typeface = Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Regular.ttf");
setTypeface(typeface);
}
}
}
另一个是定义样式并在那里设置字体
<style name="CodeFont" parent="@android:style/TextAppearance.Medium">
<item name="android:typeface">monospace</item>
</style>
所以我的问题是,哪个内存效率更高?
另外,无论如何在XML文件中引用assets/fonts/<fontname>.ttf
文件?我试图让所有视图对象都具有相同的字体,但如果我决定更改字体,我希望它们都引用一个点。