android的自定义字体,Android 自定义字体方案

该博客讨论了Android系统默认字体限制以及如何通过Java代码自定义字体。作者提出了一种优化方案,创建了一个工具类并使用枚举实现单例模式,将常用字体存储在静态变量中,减少重复加载,从而提升界面流畅性。
摘要由CSDN通过智能技术生成

在应用中需要配置不同的字体,而 Android 只能在 xml 中配置系统默认提供的四种字体,需要自定义的字体都需要在 Java 代码中配置.

Android 默认方案

你可以通过ID查找到View,然后挨个为它们设置字体。字体放置于 assets/fonts 文件夹下面.

Typeface customFont = Typeface.createFromAsset(this.getAssets(), "fonts/YourCustomFont.ttf");

TextView view = (TextView) findViewById(R.id.activity_main_header);

view.setTypeface(customFont);

改良

如果每次都这样加载,界面就会卡顿,所以我提取出来了一个工具类.

示例中涉及到了两个自定义的字体,用枚举实现了单例模式,将字体存储在静态变量中,避免每次都去 assets 中加载,更改之后页面就流畅了.

public enum TypefaceUtils {

TYPEFACE;

private static Typeface typeface50;

private static Typeface typeface55;

public void set50Typeface(TextView textView) {

if (typeface50 == null)

typeface50 = Typeface.createFromAsset(textView.getContext().getAssets(), "fonts/HYQiHei-50S.otf");

textView.setTypeface(typeface50);

}

public void set55Typeface(TextView textView) {

if (typeface55 == null)

typeface55 = Typeface.createFromAsset(textView.getContext().getAssets(), "fonts/HYQiHei-55S.otf");

textView.setTypeface(typeface55);

}

}

参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值