vendor/font/MTK/official/project/plutommi/content/src/MainLcd240X320/FontRes.c //以lcd为 240X320 为例.
plutommi/Customer/CustResource/PLUTO_MMI/MMI_features_switchPLUTO.h
plutommi/mmi/Inc/MMI_features.h
以下以简体中文为例
1. 编译开关 :
__MMI_LANG_SM_CHINESE__ 在 plutommi/mmi/Inc/MMI_features.h 中定义.(07A以前的版本plutommi/mmi/Inc/MMI_features_switch.h中自己定义,)
CFG_MMI_LANG_SM_CHINESE 在 plutommi/Customer/CustResource/PLUTO_MMI/MMI_features_switchPLUTO.h 中定义.(07A以前的版本没有该文件)
#define CFG_MMI_LANG_SM_CHINESE (__ON__) //有简体中文
#define CFG_MMI_LANG_SM_CHINESE (__OFF__) //没有简体中文
注:
有些语言不带有zi输入法,在将其编译开关改成 (__ON__) 时, 要将相应的zi输入法关掉
简体中文zi输入法为 #define CFG_MMI_ZI_SM_CHINESE (__AUTO__) //开 (__ON__), 关(__OFF__), 自动(__AUTO__)
2. 添加字库文件包含
#if defined(__MMI_LANG_SM_CHINESE__) //要将系统本身 __MMI_LANG_SM_CHINESE__ 的使用处删掉.
#include "L_Chinese_Font_16.h"
#include "L_Chinese_Font_20.h"
#include "L_Chinese_Font_24.h"
#endif
注:要将字模文件放在 plutommi/Customer/CustResource 下.
3. 系统语言总数的增加
const U16 mtk_gMaxDeployedLangs //是当前系统的语言总数
如果添加系统本身支持的语言,mtk_gMaxDeployedLangs 本身不需要任何改动,
如果增加新的语言,需要将该值 + 1 .
4. 定义每种字体信息
#if defined(__MMI_LANG_SM_CHINESE__)
const RangeData GBK_CH_RangeData[3641]={ // 编码段信息数组
{63,63}, // 第一个编码段
{164,164}, // 第二个编码段
.
.
.
{65507,65507},
{65509,65509},
};
const RangeDetails GBK_CH_RangeInfo={ // 总体编码段信息
3641, // 编码段个数
GBK_CH_RangeData // 编码段信息数组地址
};
sCustFontData Chinese_Font_Small = { // 某种字体信息
16, 16, 14,2,1, 32, 500, // 字体高、字体宽、不明,不明,是否等宽、每个字模字节数、最大字符数
(U8*)NULL, (U32*)NULL, (U8*)GBK_16_Data, (U32*)GBK_16_RangeOffset, // 每个字符宽度表、数据地址、字模数据、每个字模在数据中的偏移(本行内容通常在字模数据.h即L_Chinese_Font_16.h中定义)
{
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{0, 0},
{0, 0},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{0, 0},
{0, 0}
}, // 当被设置成某个字体时,支持艺术字的类型
&GBK_CH_RangeInfo}; // 总体编码段信息
注: (1) sCustFontData 在07以前,以后和6235的版本中都有所改变,具体内容根据自己环境设定.
(2) Chinese_Font_Small.pFontType 所支持的字体类型数与 pluto_ch_standardFamily.nTotalFonts 相等.
#endif
5. 定义所有字体信息
#if defined(__MMI_LANG_SM_CHINESE__)
sFontFamily pluto_ch_standardFamily = {6,{&Chinese_Font_Small,&Chinese_Font_Medium,&Chinese_Font_Medium, &Chinese_Font_Small,&Chinese_Font_Medium,&Chinese_Font_Medium}};
//字体个数、每种字体信息地址
#endif
6. 添加语言信息
在 const sLanguageDetails mtk_gLanguageArray[MAX_LANGUAGES] 中添加
#if defined(__MMI_LANG_SM_CHINESE__)
{
{(char)0x80,(char)0x7B,(char)0x53,(char)0x4F,(char)0x2D,(char)0x4E,(char)0x87,(char)0x65,(char)0x00,(char)0x00},// 本语言名称
"*#0086#", // 用来切换语言的方法
0,
{ &pluto_ch_standardFamily },// 本语言所有字体信息
"zh-CN"
},
#endif