簡短的序言。泰語字母有可能出現在輔音上方的元音符號,並且在輔音上方也存在變音符號(DS)。當元音和DS出現時,它們出現一個在另一個之上,所以元音被設置在輔音之上並且DS被設置在元音之上。如何在Android上正確顯示泰語diactirics?
我正在編寫一個將以泰文顯示文本的應用程序。在模擬器(API 10)中一切看起來都很完美,但在真實設備(三星GT-I9001,Gingerbread 2.3.6)上看起來不錯。
我準備了兩張照片來說明問題。我有一個簡單的佈局,頂部有唯一的TextView;在該視圖中顯示兩個單詞พี่สาว和ไม้。
這是應該的樣子(從模擬器截圖):
第一個字符的元音和元音上方的DS,和最後一個字符只有DS。
這裏是我的手機截圖:
無論是DS滑下現在的元音和DS相互重疊的第一個字符以上。請注意,最後一個字符顯示爲低於應該的位置(它應該是整行高度,就像您在第一個屏幕截圖中看到的那樣)。
我發現問題在系統範圍內:我已經將這些泰語單詞複製到一個簡單的網頁,並將其加載到手機的網絡瀏覽器中,並且遇到了同樣的問題。這似乎是字體渲染被破壞。
所以問題:如何繞過這個?我是否需要安裝字體(如何?)或者某種語言包(再次,如何?),或者唯一的方法是升級Android?
PS:在Android 4.0.4上沒有問題。也許只有舊版本受到影響。
更新: WarrenFaith給出了一個有希望設置自定義字體的建議。然而,這看起來並不像看起來那麼簡單。我嘗試了幾種不同的字體,包括Roboto(在ICS中引入),msttf Linux包中的Verdana以及其他一些字體。爲了看到字體真的被加載和應用,我在文本中添加了一些拉丁文和西里爾文字符。
結果很有趣。只有拉丁文字和西里爾文字符會改變,但不是泰國字符。看起來這些字體沒有所需的字形,而Android將它們替換爲使用某種默認字體呈現的字體。
(我不明白爲什麼的Roboto沒有工作,這是官方Android字體shouldn't它給整個完全支持Unicode?)
所以好像我一定要找到字體那裏有泰國字形。
而我仍然想知道在Android 4.0.4中默認使用哪種字體。
樂意結束:感謝WarrenFaith的建議,谷歌和this blog article。
這看起來很有希望,但我無法驗證它。我已經更新了我的問題。 – 2013-02-24 16:48:42
最後我找到了正確的字體。感謝您的幫助! – 2013-02-24 17:18:09
@AlexanderDunaev,您使用哪種字體顯示泰語?你可以請分享 – 2014-09-22 16:41:18