MCT字体介绍
1.如果要更改字体宽度,可手工修改BDF文件,具体方法为先记录各个BMP中字体所需宽度,然后手工修改BDF文件的如下红色部分:
ENCODING 1569
SWIDTH 520 0
DWIDTH 17 0
BBX 16 16 0 -3,经过实践,16×16的字体宽度最小能修改为9
2.打开MCT工具的Font Customizer Tool,在选择Language的时候有“Alphabetic”(字母文字)及“Ideographic”(象形文字)可选;如果是等宽的BDF则选择alphabetic,如果是非等宽的则选择Ideographic,同时Width Property选择Variable即可生成有宽度属性的字体.h文件。
一个典型的字体文件的定义为:
#if defined(__MMI_LANG_THAI__)
/*泰文字体,使用EmbedTools能够直观看到*/
//泰文在Unicode中的分布为两块
const RangeData Thai14_RangeData[2]={
{3585,3642},/*0x0E01~0x0E3A: 58个字母 */
{3647,3675},/*0x0E3F~0x0E5B: 29个字母,共87个字母*/
};
const RangeDetails Thai14_RangeInfo={
2,
Thai14_RangeData
};
sCustFontData pluto_thai = {
/*5个参数分别表示字体宽、高、是否等宽(0非等宽、1等宽)、每个字在data中的长度及最大字符个数,如果是非等宽的情况,好像第四个参数无用*/
14, 14, 0, 25, 500,
(U8*)L_Thai_Medium_W, (U32*)L_Thai_Medium_O, (U8*)L_Thai_Medium_D, (U32*)RangeOffset_14_Thai_Medium,
{
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH},
{FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH,FONTATTRIB_NORMAL|FONTATTRIB_BOLD|FONTATTRIB_ITALIC|FONTATTRIB_OBLIQUE|FONTATTRIB_UNDERLINE|FONTATTRIB_STRIKETHROUGH}, },
&Thai14_RangeInfo};
#endif