在 XML 布局中自定义字体 (Android)
正如您所注意到的,Android 目前不支持在 XML 布局中定义小部件字体。相反,只能使用系统安装的字体来指定字体。
替代解决方案
要克服此限制,您有几个选项:
自定义 TextView 扩展
要简化自定义过程,请考虑扩展TextView类如图所示下面:
TextViewPlus.java:
public class TextViewPlus extends TextView { ... private void setCustomFont(Context ctx, String asset) { Typeface tf = null; try { tf = Typeface.createFromAsset(ctx.getAssets(), asset); } catch (Exception e) { ... } setTypeface(tf); } }
a ttrs.xml:
<declare-styleable name="TextViewPlus"> <attr name="customFont" format="string"/> </declare-styleable>
main.xml:
<LinearLayout ...> <com.example.TextViewPlus android:customFont="saxmono.ttf" ... /> </LinearLayout>
与借助此扩展,您可以通过为每个小部件设置 customFont 属性来在 XML 布局中指定自定义字体。 saxmono.ttf 文件应放置在 asset 文件夹中。
重要提示
值得注意的是,使用此方法可能会导致内存问题。请参阅 chedabob 的评论了解更多详情。
以上是如何在 Android XML 布局中自定义字体?的详细内容。更多信息请关注PHP中文网其他相关文章!