我正在維護一個Android應用程序,人們用它來顯示各種外來語言(如藏語或古希臘語)中的字符串。由於Android設備的字體非常少,用戶可以將字體文件放在SD卡上,應用程序將使用它們。Android:找出哪個字體文件適合我要顯示的字符
問題:給定一個字符串,我該如何自動決定哪個字體文件是最合適的,這樣這個字符串就不會出現被正方形/框替換的字符?
注:
- 每一個字符串是用一種語言。
- 字符串顯示在WebView中。
- 自定義字體的工作,唯一的問題是決定使用哪個字體文件。
- 而不是一個字體,它可以提供該字符串可接受的字體列表。
不必要的情況下,爲好奇:我想開發這個功能: http://code.google.com/p/ankidroid/issues/detail?id=779
更新:我結束了創建基於Antisquare開源庫關於Mostafa的想法。
它有一個getSuitableFonts
方法是非常快速的。
我將你的想法實現爲開放源代碼:https://github.com/nicolas-raoul/Antisquare我希望很多人都能找到它,使用它並擴展它:-) –
@NicolasRaoul哦,太棒了。很高興它有所幫助,並且很高興您分享了您的解決方案。 – Mostafa
snftly在Android上運行良好。但是使用它會導致更多的問題。有誰知道Skia使用哪個cmap表格?我猜這是全部或一部分Unicode表(請參閱https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6cmap.html),但它確實很好。 – SurlyDre