Intereting Posts
Как конвертировать дату в определенном формате в android? Как ограничить количество строк в таблице Android SQLite Получить список строк, присутствующих в файле strings.xml в Android @ Преобразован в% 40 в запросе HTTPPost Сервис не запускается снова после приложения kill, даже используйте START_STICKY на каком-либо устройстве Как настроить панель действий Шерлока + плагин карты? Как связывать пакеты зависимостей с библиотекой Android, например .aar? Могу ли я управлять настройкой <support-screen> файла AndroidManifest.xml из файла config.xml в Кордове? Почему диалоговое окно Android Android Alert BLACK? Онлайн-приложение для потокового радио для Android Как отключить скользящие вкладки в контекстной панели действий, сделав вкладки не кликабельными / прокручиваемыми? Ручная установка обновленного АПК завершается неудачей: «Подписи не соответствуют ранее установленной версии», Перетаскивание в GridView на Android Ошибка при использовании parse SDK-библиотеки в образце Android-приложения Как добавить элементы в spinner в Android?

Android: проблемы с отображением шрифтов с .ttf> 3MB

Мое Android-приложение нуждается в поддержке на разных языках (например, на китайском и т.д.). Большинство из них находятся в файле DroidSansFallback.ttf от Ascender.

См. Https://android.googlesource.com/platform/frameworks/base/+/master/data/fonts.

На некоторых телефонах Android есть DroidSansFallback.ttf, но с отсутствием многих глифов, например, на NexusOne, который распространяется в США. Символов азиатских шрифтов вообще нет, в основном только латинских и связанных персонажей.

Так что делать?

Я добавил в «активы» свою собственную копию DroidSansFallback.ttf (я также пробовал другие шрифты из других источников) и устанавливал ее во время выполнения с использованием класса Typeface.

С некоторыми телефонами и некоторыми файлами .ttf рендеринг шрифтов полностью зависает, означает, что буквы – это всего лишь несколько точек в одной строке.

После более глубокого анализа проблема сводится к следующему:

  1. Маленькие файлы .ttf работают всегда (<200 КБ)
  2. Большие .ttf файлы вообще не работают (> 3MB)
  3. Если на телефоне установлен полный DroidSansFallback.ttf (который составляет ~ 3,5 МБ), даже шрифт размером 1 или 2 МБ закручивается. Если в телефоне установлена ​​только «облегченная» версия DroidSansDallback.ttf (которая составляет ~ 1 МБ), шрифт 3 МБ отлично работает.

Что здесь не так? Я что-то упускаю? Похоже, что все установленные / используемые шрифты вместе не могут быть больше, чем некоторые хваты размером ~ 4 МБ.

У кого-то была такая же проблема? Я попробовал это на NexusOne (2.1), HTC Hero (2.1), SonyEricson Xperia (1.6) и Motorola MileStone (2.0), все показывают одинаковое поведение.

Спасибо за любые подсказки.

На ваших устройствах не хватает памяти.

Все перечисленные вами устройства довольно старые. Размер кучи составляет около 12 МБ.

По возможности используйте PNG с китайским текстом, предварительно подготовленным.