基于Android 11 Android Framework 全局替换系统字体
第一种通过替换系统默认字体
-
将需要替换的字体资源放置frameworks/base/data/fonts/目录下。
-
将系统默认的Roboto字体替换为HarmonyOs字体。
frameworks/base/data/fonts/fonts.xml
- frameworks/base/data/fonts/Android.mk
font_src_files :=\
# 新增字体资源需配置
...
HarmonyOs_***.ttf
...
...
- frameworks/base/data/fonts/fonts.mk
PRODUCT_PACKAGES := \
# 新增字体资源需配置
...
HarmonyOs_***.ttf
...
...
编译刷机验证。
第二种通过动态修改Typeface.java
frameworks/base/graphics/java/android/graphics/Typeface.java
- 新增一个SystemProperties属性 persist.sys.customfont
在系统启动期间,判断该属性是否有值存在,如果有的话,将其设置为默认字体
- 应用程序修改:
setProp("persist.sys.customfont", fontPath);
public static void setProp(String key, String value) {
try {
Class<?> c = Class.forName("android.os.SystemProperties");
Method set = c.getMethod("set", String.class, String.class);
set.invoke(c, key, value );
} catch (Exception e) {
e.printStackTrace();
}
}
- 通过adb命令修改:
编译刷机验证。文章来源:https://www.toymoban.com/news/detail-654949.html
查看对比效果
文章来源地址https://www.toymoban.com/news/detail-654949.html
到了这里,关于Android Framework 全局替换系统字体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!