【无标题】

Android应用软件的字体设置

`android 自定义字体 文字显示 全局字体更改

全局使用的字体切换

  1. xxx.ttf格式放在asset资源文件下,font格式目录里面(必须放到这个路径)。
  2. app的onCreate()的方法里面添加replaceSystemDefaultFont(context); context为this.
    @Override
    public void onCreate()
    {
    super.onCreate();
    replaceSystemDefaultFont(this); // this是app的context
    }
    public void replaceSystemDefaultFont(Context context)
    {
    //修改的是MoNOSPACE,在主题里给app设置的默认字体就是monospace,设置其他的也可以
    replaceTypefaceField(“MONOSPACE”, createTypeface(context));
    }

//通过字体地址创建自定义字体
private Typeface createTypeface(Context context)
{
return Typeface.createFromAsset(context.getAssets(), “din.ttf”);
//网上说有资源泄漏的分析,因为每次都会去调用这个字体库。
}

//通过修改MONOSPACE字体为自定义的字体达到修改app默认字体的目的
private void replaceTypefaceField(String fieldName, Object value)
{
try {
Field defaultField = Typeface.class.getDeclaredField(fieldName);
defaultField.setAccessible(true);
defaultField.set(null, value);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
2) 给应用添加默认字体(在Application下的主题添加默认的TypeFace)如下
<application
android:name=“.App”
android:allowBackup=“true”
android:hardwareAccelerated=“true”
android:theme=“@style/appTheme.appXXX”
…>

添加 android:typeface

二、单个控件或风格设置
1)字体库放入资源文件,font目录下。
2)风格设置
Styles.xml 中,在对应的style (自定义的)下 添加:
@font/aaaaa
注:aaaaa为字体库的文件名
3)单个控件设置
<TextView
android:layout_width=….
……
android:fontFamily=”@font/aaaaa” />

小结

这种方法初步验证,可以使用。能够切换android自带字体为自己想要设置的字体库。
方法非原创,多个博客的集合(博客都可以转载),验证可以使用,分享给大家。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值