symbian程序动态加载ttf字体使用小结

symbian程序动态加载ttf字体使用小结

ID:11137167

大小:242.00 KB

页数:10页

时间:2018-07-10

symbian程序动态加载ttf字体使用小结_第1页
symbian程序动态加载ttf字体使用小结_第2页
symbian程序动态加载ttf字体使用小结_第3页
symbian程序动态加载ttf字体使用小结_第4页
symbian程序动态加载ttf字体使用小结_第5页
资源描述:

《symbian程序动态加载ttf字体使用小结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Symbian程序动态加载TTF字体使用小结Symbian手机支持的字体文件,有gdr字体文件、bdf字体文件和ttf字体文件,相对来说ttf字体用的更为普遍一些,他是由Apple公司和微软公司联合发起的一套标准,在Symbian手机目前所知有两种使用ttf字体文件的方法:一种是实现基于ECom插件形式的光栅化插件方法,该方法是静态加载,每次选择一个字体后,需要重启手机才能生效,网上有开源的FontRouter可以作为参考;另一种是通过CFbsTypefaceStore或由应用程序框架控制环境动态加载字体文件,该种方法可以实时生效,没错的话Go浏览器就是通过这种方法实现的。本文就是对在Sy

2、mbian手机上动态加载TTF字体并使用的整理小结。字体使用效果截图演示因为后续内容比较枯燥无味,为了增加本文的可读性,先将字体使用的效果截图如下方正胖娃字体华康少女字体方正柳体方正准圆字体字体文件加载使用流程动态加载ttf字体文件和使用的方法,其实也是可以通用于gdr等字体的,具体的加载使用步骤流程可以参考nokia官方的wiki文档,地址见下面链接http://wiki.forum.nokia.com/index.php/Custom_font步骤1:准备好需要使用的TTF字体文件可以去网络上下载你想要在手机上显示的ttf字体文件(比如http://www.font5.com.cn/i

3、ndex.html),也可以使用Windows操作系统自带的字体,可以通过“控制面板”、“字体”或者直接到"C:WindowsFonts"目录下寻找你需要的字体文件。步骤2:将准备好的TTF字体文件拷贝到手机中拷贝的路径由你自己选择,可以手机存储或者TF卡上,由于TTF字体文件本身都比较大,所以本文试验时将其放在TF卡上(“e:DataFonts”)。步骤3:在Draw()函数中加载并使用这个字体文件具体代码如下:CFont*myNewFont=NULL;TFileNameiFileName;iFileName.Copy(_L("e:\Data\Fonts\abc.ttf"

4、));TIntstaticfontID=0;iCoeEnv->ScreenDevice()->AddFile(iFontFile,fontID);TBufaTypefaceName;TTypefaceSupportmyTypefaceSupport;iCoeEnv->ScreenDevice()->TypefaceSupport(myTypefaceSupport,0);//通常是新增加的在序列里面是第一个aTypefaceName.Copy(myTypefaceSupport.iTypeface.iName.Des());TFontSpec

5、myFontSpec;myFontSpec.iTypeface.iName=aTypefaceName;TPointpixelPoint(16,16);//字体大小模式myFontSpec.iHeight=iCoeEnv->ScreenDevice()->PixelsToTwips(pixelPoint).iY;iCoeEnv->ScreenDevice()->GetNearestFontToDesignHeightInTwips(myNewFont,myFontSpec);gc.UseFont(myNewFont);gc.SetPenColor(KRgbBlack);gc.DrawTex

6、t(_L("hello"),TPoint(5,20));步骤4:卸载这个字体卸载代码如下:iCoeEnv->ScreenDevice()->ReleaseFont(myFont);iCoeEnv->ScreenDevice()->RemoveFile(aid);字体动态加载的问题讨论虽然整个操作步骤如上述简单流程,但是实际实现时你会发现很多意想不到的问题,我在具体操作时曾一度不相信通过上述方法真能实现所谓的动态加载,下面就对实际使用中遇到的几个问题进行阐释。如何正确获得要用的字体通常情况下,通过AddFile或者InstallFile加载的字体,位于字体表的首项,所以可以通过以下代码获取新

7、加载的字体TTypefaceSupportmyTypefaceSupport;iCoeEnv->ScreenDevice()->TypefaceSupport(myTypefaceSupport,0);//通常是新增加的在序列里面是第一个但是有时候也并非都是在首项(存在偶然因素),特别是当选中的这个ttf字体已经有加载的情况下,想继续加载另一个非同文件名的ttf字体时,系统会报错(-11,KErrAlreadyExist

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。