使用 Firmonkey 在顯示 emoji 字符時,有些 emoji 並無法顯示彩色,見下圖:
經查 FMX 源碼,是因為判斷 emoji 的字符區段不足造成的,經過修改後,便可顯示,見下圖:
修改方法:
將 FMX.FontGlyphs.iOS.pas 復制到自己的工程目錄下。 找到 function TIOSFontGlyphManager.DoGetGlyph 修改下面代碼: LImageChar := ((Char >= $1F0A0) and (Char <= $1F0FF)) or ((Char >= $1F300) and (Char <= $1F5FF)) or ((Char >= $2196) and (Char <= $2199)) or // <---- 加入此行,此區段是箭頭符號 "↖↗↘↙" 區段 ((Char >= $1F600) and (Char <= $1F64F)) or ((Char >= $1F680) and (Char <= $1F6FF)) or ((Char >= $1F700) and (Char <= $1F77F));
如果需要其它 emoji 字符區段,請查閱下方網站,自行加入。
emoji 字符參考:
http://unicode.org/emoji/charts/full-emoji-list.html
http://emojipedia.org/apple/ios-9.1/
http://www.unicode.org/Public/emoji/2.0//emoji-data.txt