Моему Android-приложению требуется поддержка различных языков (например, китайского и т. Д.). Большинство из них находятся в файле DroidSansFallback.ttf от Ascender.
См. https://android.googlesource.com/platform/frameworks/base/+/master/data/fonts
На некоторых телефонах Android есть DroidSansFallback.ttf, но многие глифы отсутствуют, например. на NexusOne, который распространяется в США. Глифы азиатских шрифтов вообще отсутствуют, в основном только латинские и связанные с ними символы.
Так что же делать?
Я добавил к «активам» свою собственную копию DroidSansFallback.ttf (я также пробовал другие шрифты из других источников) и установил ее во время выполнения, используя класс гарнитуры.
В некоторых телефонах и некоторых файлах .ttf рендеринг шрифтов полностью испорчен, что означает, что буквы - это всего лишь несколько точек в одной строке.
После более глубокого анализа проблема сводится к:
- Небольшие файлы .ttf, кажется, всегда работают (<200 КБ) </li>
- Большие файлы .ttf вообще не работают (> 3 МБ)
- Если в телефоне установлен полный файл DroidSansFallback.ttf (~ 3,5 МБ), даже шрифт размером 1 или 2 МБ испортится. Если на телефоне установлена только «облегченная» версия DroidSansDallback.ttf (~ 1 МБ), шрифт размером 3 МБ работает нормально.
Что здесь не так? Я что-то пропустил? Похоже, что все установленные / используемые шрифты не могут быть больше чем somehwat ~ 4 МБ.
Кто-нибудь испытывал такую же проблему? Я пробовал это на NexusOne (2.1), HTC Hero (2.1), SonyEricson Xperia (1.6) и Motorola MileStone (2.0), все показывают одинаковое поведение.
Спасибо за любые подсказки.