Android Chromium:成功地获取到用户自定义的系统默认字体设置

本文介绍Android系统中修改默认字体的方法,由于官方不直接支持此功能,需通过OEM厂商定制的framework层代码实现。主要涉及修改Configuration类并利用Java动态反射调用技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个事情的原理是这样的:Android系统官方是不支持修改系统默认字体的,所有能够修改的情况都是OEM产商修改了framework层的代码,同时集成了高权限的预安装应用服务。

怎么做的呢?

其实很简单:修改android.content.res.Configuration类,Configuration类保存系统级别影响所有的Activity View显示的设置。如果Configuration类有改变,则会自动重新启动所有的Activity。

比方说,可以加一个String fontPath或者Typeface typeface属性。(官方默认的只有fontSize)

添加的属性对于外部应用而言是不可见的,因为外部普通应用只能基于官方的Android SDK编译。解决方法是通过Java动态反射调用。

那么,外部应用初始启动时如何获取当前的Configuration对象实例呢?

很简单:Activity(Context) --> getResources()得到Resources对象 --> getConfiguration():OK。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值