1.如果要更改字体宽度,可手工修改BDF文件,具体方法为先记录各个BMP中字体所需宽度,然后手工修改BDF文件的如下红色部分: 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 |