正文
[Description]
- Android系統的字庫文件放在:alps\frameworks\base\data\fonts
其中DroidSans.ttf是默認英文字庫;DroidSans-Bold.ttf是默認英文粗體字庫;DroidSansFallback.ttf是默認中文字庫。
- 以增加一套第三方的中文字庫()為例。
因為Google提供的默認中文字庫DroidSansFallback.ttf不很全面,所以客戶經常有需求增加三方中文字庫以支持中文字符的顯示,且把這套新的字庫作為系統的默認中文字庫。
[Solution]
分兩種情況:
一、不需要保留Google默認的中文字庫:
把這個三方字庫重命名為DroidSansFallBack.ttf,並拷貝到alps\frameworks\base\data\fonts下,替換系統原來的默認中文字庫。重新new工程並download bin
到手機。
二、有需要保留Google默認的中文字庫,並在此基礎上增加自己需要的新字庫
根據code version不同而做法不同:
- ICS 4.0之前的版本:
1) 拷貝NewFontFile.ttf文件到 alps\frameworks\base\data\fonts下
2) 把字庫文件加入編譯選項裡:
修改frameworks/base/data/fonts/Android.mk文件:
copy_from := \
DroidSansMono.ttf \
NewFontFile.ttf \
……
3) 修改external/skia/src/ports/SkFontHost_android.cpp 文件:
//增加對應的font family
static const char *gNewFontFileNames[] = {
"............", NULL //省略的部分由當前系統支持的字庫引擎來決定
};
//增加以下語句
{“NewFontFile.ttf", gNewFontFileNames },
這樣就算添加完成了。
- ICS 4.0版本:
1) 把對應的字庫文件拷貝到frameworks/base/data/fonts下
2) 在fallback_fonts.xml (frameworks/base/data/fonts)下添加新字庫文件的font family:
<family>
<fileset>
<file>NewFontFile.ttf</file>
</fileset>
</family>
3) 修改font makefile:fonts.mk (frameworks/base/data/fonts)
PRODUCT_COPY_FILES := \
......
frameworks/base/data/fonts/NewFontFile.ttf:system/fonts/NewFontFile.ttf \