使用应用程序指定的自定义字体
文章信息
- 详细描述
自定义字体可通过CFbsTypefaceStore或由应用程序框架控制环境提供screen device(CWsScreenDevice)实例来增加。如果字体不被用来共享那么字体文件的路径需要小心选择。
- 解决方案
程序定义的字体(如TTF或GDR文件)可以用如下方法安装到屏幕设备中。
TInt fontFileID;
TInt fontErr = CEikonEnv::Static()->ScreenDevice()->AddFile(
_L("c:\\system\\apps\\<APPID>\\customFont.ttf"),
fontFileID);
这里APPID是指定程序的识别号,例如程序名或UID。注意一定要指明一个公共路径,因为字体和位图服务无法访问定义在程序私有目
录中的文件,这将引起AddFile()的KErrPermissionDenied错误。使用全局字体目录(\resource\fonts)将避免字体只被一个单独程
序使用,手机启动时并不会自动加载。
注意AddFile()将会使用一个字体列表引用计数,当客户端被注销计数将会自动减少。如果数值为0那么typeface将被移除。或者客户端可以使用RemoveFile(),传递字体文件ID作为参数,用来移除指定的字体文件。
成功加载字体后,新的字体将被CFbsTypefaceStore类的GetNearestFont...()函数检测到。


(no comments yet)