[譯]在 Andriod/IOS 程式中使用自己的字型

來源:互聯網
上載者:User

標籤: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 程式中使用自己的字型

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.