cocos2dx ttf字体 android,cocos2dx2.2.2中使用ttf字体
在iOS,android和windows下使用ttf字体的套路都稍微有点不同,具体在下面几个方面:
1)安装:
windows平台 使用ttf字体时如系统字库中未安装该字体,则需右键点击字体文件进行安装,然后才可使用;
android平台 无需安装直接打包到apk的资源中即可;
ios平台 需要在xcode项目的info.plist中添加字体文件,具体位置如下:
打开该文件后先查找是否有 Fonts provided by application 该项,如果没有则在文件如下图位置点击加号进行添加
在Fonts provided by application选项中增加需使用的字体文件,添加后的截图如下:
这里需要注意的是该ttf文件所在的目录路径,我这边的路径是resources/fnt/fangzheng.ttf, 这里注意根据自己的资源路径进行设置,完成这步后ios下字体资源安装就算搞定了。
2)使用:
windows平台,使用代码示例如下:
UILabel *pLabel = UILabel::create();
pLabel->setFontName("方正.ttf");
pLabel->setText("中国智造,慧及全球");
android和ios的调用代码和windows一样,但在设置字体名称时是有区别的,这里一定要注意:
pLabel->setFontName("方正.ttf");
在android中字体文件的名称不能为中文,表现为在打包apk时会输出下面的错误信息:
方正.ttf :error: Invalid filename. Unable to add.
这里只需把文件名改为非中文表示,比如改为 "fangzheng.ttf",然后修改设置字体名称的代码如下:
pLabel->setFontName("fangzheng.ttf");
再重新进行apk打包就可以了。
在ios下会稍微麻烦些,主要原因是在ios下设置的字体名称不是文件名,而是该字体真实的字体名称,关于如何获取真实字体名称,可以借鉴下面这位同学的技术贴,
具体原理是新建一个ios应用项目,将需要使用使用的ttf字体包含进去,具体方法和上面讲的ios安装ttf字体套路一样,只是plist的位置不一样而已,然后通过下面的代码:
NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indFamily, indFont;
for (indFamily=0; indFamily
{
NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
fontNames = [[NSArray alloc] initWithArray:
[UIFont fontNamesForFamilyName:
[familyNames objectAtIndex:indFamily]]];
for (indFont=0; indFont
{
NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]);
}
}
将该项目所支持的所有字体的名称信息全部输出到 target output中,如下图:
然后复制所有输出的内容保存到文本文件中,修改项目属性将刚才添加ttf字体移除,再次执行得到新的支持字体的信息,将这两个文本进行对比即可找到自己添加的ttf字体的真是font name,
这里注意的是需使用的是 Font name,不是Family name
详细的步骤可参见下面这位同学分享的技术帖:
我根据上面帖子中的方法找到的字体名字为 FZCTHFW--GB1-0
修改设置字体的代码如下:
pLabel->setFontName("FZCTHFW--GB1-0");
由于在ios和android中使用的字体名称不一致,这个可以定义一个全局变量,然后根据不同平台设置不同的值即可,示例如下:
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
std::string FONT_NAME = "fangzheng.ttf";
#else
std::string FONT_NAME = "FZCTHFW--GB1-0";
#endif
到此处在cocos2dx2.2.2中跨平台使用的ttf字体就基本搞定了。
cocos2dx ttf字体 android,cocos2dx2.2.2中使用ttf字体相关推荐
- android 寺库trytry_wpf 中使用 ttf
因为实现ImageButton接触ttf在wpf中的使用,ttf是图标按钮的集合文件.可在阿里www.iconfont.cn网站选择下载.首先选择所需图标添加到购物车,选择完成后从购物车中选择&quo ...
- html5 在线字体库,网络字体@font-face,如何处理网页中的特殊字体?
网络字体@font-face 如何处理网页中的特殊字体 HTML5学堂:随着网页的发展,网页中出现了越来越多的字体种类,网页自带的微软雅黑.宋体.黑体已经越来越难以满足设计的需要,那么,如何在网站中使 ...
- div html表格样式设置字体大小,css样式表中如何修改字体大小为18px?
css样式表中如何修改字体大小为18px?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. css样式表中如何修改字体大小为18px? 在css样式表中可以 ...
- html中的字体选择,谈谈Web标准设计中的常用字体和选用原则
浏览器中展示网页文字内容时,文字字体都会按照设计师在css中定义的字体族的顺序来进行显示. 什么是字体族?字体族就是你在css代码中看到"font-family"的代码内的一类字体 ...
- html中如何设置所有文本字体,如何设置HTML页面中文本的字体
字体属性介绍 CSS中的字体属性是干什么的呢?字体字体确定和字体有关咯,就是设置HTML页面中文本的字体, CSS中经常使用的字体属性有几种呢,笔者给你们梳理了下,比较经常使用的一共有5种,今天咱们就 ...
- word设置默认字体_如何在Word中设置默认字体
word设置默认字体 Word is a powerful application, but some of the configuration tools are not very intuitiv ...
- word中字体 html,在Word 2010中设置文本字体
在本章中,我们将讨论如何在Word 2010中设置文本字体和大小.Microsoft字允许您使用不同大小的不同字体.您可以通过更改字体及其大小来更改文档的外观.通常您会为段落和标题使用不同的字体.学习 ...
- Android AutoSize屏幕适配中图标及字体放大的问题解决
现象: 项目接入Android AutoSize屏幕适配框架,项目本身主界面是横屏操作的界面.测试中用户反馈在vivo x27的手机或者其他机型也会出现(没测试出来)横屏后所有的图标及字体都放大. 原 ...
- android dialog 字体,android – 为AlertDialog的MultiSelectItems设置自定义字体(字体)
AlertDialog.Builder使用 AlertController.AlertParams构建对话框.我检查了AlertDialog.Builder #create()调用AlertContr ...
最新文章
- 【 FPGA 】UltraFast设计方法学:时序收敛之时序约束基本准则
- 【运营干货】三分钟,读懂互联网运营
- Python 常见的内置模块
- Python与操作系统有关的模块
- Windows下MinGW编译vim7.4
- Separate Query from Modifier(分离查询和修改)
- SQL 拼接语句输出_一文了解Mybatis中动态SQL的实现
- 在 ASP.NET MVC 中创建自定义 HtmlHelper
- 【win10.win7】在win10系统里面安装win7系统(亲测有效,方便快捷,无需自己设置开机启动项)
- git 上传项目到github
- 家庭网络布线图与布线方案
- 通达OA2017版连接sqlserver2008数据库
- 稳定排序与不稳定排序的区别
- 为啥E进制计算机的效率最高?
- 风险回避、减轻、转移、接受,汇率风险
- 小程序分销的规则是怎样的?
- Mongodb分片学习
- Windows 10 截图工具
- MacOS redis开机启动设置
- php怎么定义字符串变量的值,php字符串变量怎么替换