1.概述
在13.0系統(tǒng)定制化開發(fā)中,在產(chǎn)品定制中,有產(chǎn)品需求對于系統(tǒng)字體風格不太滿意,所以想要更換系統(tǒng)的默認字體,對于系統(tǒng)字體的修改也是常有的功能,而系統(tǒng)默認也支持增加字體,所以就來添加楷體字體為系統(tǒng)字體,并替換為系統(tǒng)默認字體,
接下來就來分析下替換默認字體的方法文章來源:http://www.zghlxwxcb.cn/news/detail-834589.html
2.添加系統(tǒng)字體并且設(shè)置為默認字體的核心類
frameworks/base/data/fonts/
frameworks/base/data/fonts/fonts.mk
frameworks/base/data/fonts/Android.bp
frameworks/base/data/fonts/fonts.xml
3.添加系統(tǒng)字體并且設(shè)置為默認字體核心功能實現(xiàn)和分析
android字體由android 2D圖形引擎skia實現(xiàn),并在Zygote的Preloading classes中對系統(tǒng)字體進行l(wèi)oad。
相關(guān)文件有:skTypeface.cpp和skFontHost_android.cpp,其中后者是skia針對android平臺字體實現(xiàn)的port。
主要的變量有:struct FontInitRec {const char*???????? fFileName;const char* const*? fNames;???? // null-terminated list};
struct FamilyRec {FamilyRec*? fNext;SkTypeface* fFaces[5];};
uint32_t gFallbackFonts[SK_ARRAY_COUNT(gSystemFonts)+1];
load_system_fonts()@skFontHost_android.cpp
?load系統(tǒng)中所有的字體并給每種字體分配唯一的ID,并將字體分為兩種:文章來源地址http://www.zghlxwxcb.cn/news/detail-834589.html
到了這里,關(guān)于android 13.0 添加系統(tǒng)字體并且設(shè)置為默認字體的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!