[译]在 Andriod/IOS 程序中使用自己的字体

Posted 我的学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[译]在 Andriod/IOS 程序中使用自己的字体相关的知识,希望对你有一定的参考价值。

原文链接:http://firemonkeyblog.blogspot.com/2014/12/using-custom-fonts-in-android-delphi.html

你应该能够在 Andriod 应用中使用任何 TrueType 字体。

示例使用了字符 Script MT Bold。这个字体在 Windows 的字体文件夹。这个字体的文件名为 SCRIPTBL.TTF。

1. 复制 SCRIPTBL.TTF 到你的工程目录。

2. 在发布(Deployment)窗口中,添加 SCRIPTBL.TTF 文件。设置它的远程目录(Remote Path)为 .\assets\internal\

设置远程名称(Remote Name)为 SCRIPTBL.ttf (使用小写的 ttf 扩展名是因为我们在程序中使用硬编码)

技术分享图片

3. 在 IDE 编辑器中打开 FMX.FontGlyphs.Android.pas。(文件位于 C:\Program Files (x86)\Embarcadero\Studio\15.0\source\fmx)

如果它被标记为只读,在编辑器中右击关闭只读。

保存文件到工程目录。不要更改文件名。接下来你可以在编辑器中修改它。

A. 添加对 System.IOUtils to 的引用到 uses 部分。

B. 找到 procedure TAndroidFontGlyphManager.LoadResource;

  • 添加一个变量 FontFile: string;
  • 在过程中有一行是:Typeface := TJTypeface.JavaClass.create(FamilyName, TypefaceFlag);
  • 将上面的行替换为:

 

这将让其查找前面指定名称的字体文件。

4. 对于每一个想使用该字体的组件,设置  TextSettings 的字体家族(FontFamily)属性为 SCRIPTBL

这个名称是不包含扩展名的字体文件名称。不要设置为 “SCRIPTBL.ttf” 或 “Script MT Bold”。

你将不得不手动输入或粘贴它到属性编辑框。

注意: 在 Android 里文件名区分大小写,所以你必需保证他们一致。

这个窗体包括 label, textbox, memo, checkbox, radio button:

技术分享图片

 

原作者还有一篇文章描述了如何在 ios 中使用自己的 TTF 字体,和上面的差别在于:

1、在 IDE 的编辑器中打开 info.plist 文件,将它命名为 custom.info.plist 并保存到工程目录。

添加一个 key :

这将告诉 IOS 能够使用额外的字体文件。IOS将自动寻找它。

2、发布页中的远程目录设置为 “.\”

3、将第一步的custom.info.plist 文件加入到发布页中,并重命名为 info.plist,然后去掉原来的 info.plist 的选择。

4、中文字体要使用它的默认名称,也就是英文名称,不能使用中文名称。

其它的就一样了。

以上是关于[译]在 Andriod/IOS 程序中使用自己的字体的主要内容,如果未能解决你的问题,请参考以下文章

vue开发关于微信授权登录以及路由mode模式(Hash|History)和手机平台(andriod|IOS)不得不说的故事

是否可以在 ios/android 模拟器中使用 detox 添加 cookie?

rust交叉编译配置:windows上编译linux可执行程序

如何在windows的命令行环境下编译C++程序?

我可以在 Xeon Phi (Knights Landing) 处理器上编译 Go 程序吗?

[译] 用 Webpack 武装自己