基于Android 11 Android Framework 全局替換系統(tǒng)字體
第一種通過替換系統(tǒng)默認(rèn)字體
-
將需要替換的字體資源放置frameworks/base/data/fonts/目錄下。
-
將系統(tǒng)默認(rèn)的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
...
...
編譯刷機(jī)驗(yàn)證。
第二種通過動(dòng)態(tài)修改Typeface.java
frameworks/base/graphics/java/android/graphics/Typeface.java
- 新增一個(gè)SystemProperties屬性 persist.sys.customfont
在系統(tǒng)啟動(dòng)期間,判斷該屬性是否有值存在,如果有的話,將其設(shè)置為默認(rèn)字體 - 應(yīng)用程序修改:
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命令修改:
編譯刷機(jī)驗(yàn)證。文章來源:http://www.zghlxwxcb.cn/news/detail-654949.html
查看對比效果文章來源地址http://www.zghlxwxcb.cn/news/detail-654949.html
到了這里,關(guān)于Android Framework 全局替換系統(tǒng)字體的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!