標籤:gpo app use 分享 ace file 編輯 將不 util
原文連結: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);
- 將上面的行替換為:
12345 |
FontFile := TPath.GetDocumentsPath + PathDelim + CurrentSettings.Family + ‘.ttf‘;if FileExists(FontFile) then Typeface := TJTypeface.JavaClass.createFromFile(StringToJString(FontFile))else 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 :
1234 |
<key>UIAppFonts</key> <array> <string>SCRIPTBL.TTF</string> </array> |
這將告訴 IOS 能夠使用額外的字型檔。IOS將自動尋找它。
2、發布頁中的遠程目錄設定為 “.\”
3、將第一步的custom.info.plist 檔案加入到發布頁中,並重新命名為 info.plist,然後去掉原來的 info.plist 的選擇。
4、中文字型要使用它的預設名稱,也就是英文名稱,不能使用中文名稱。
其它的就一樣了。
[譯]在 Andriod/IOS 程式中使用自己的字型