Поддержка сложной верстки текста с помощью шрифтов OpenType в Android

Что бы я хотел

Я хотел бы поместить шрифт OpenType в папку с активами и использоватьTypeface.createFromAsset визуализировать текст Unicode в моем приложении Android для языка, который используетсложное расположение текста (CTL).

Фон

Я хочу сделать это длятрадиционная монгольская письменность, но это та же проблема (насколько я слышу) для других языков, таких как тайский, арабский, индийский и многие языки меньшинств.Шрифт OpenType уже содержит информацию, необходимую для правильного отображения текста. Проблема в том, что не все программное обеспечение поддерживает рендеринг OpenType.Некоторые делают, но другие нет. Из того, что я могу собрать, Android раньше не привык, но, может быть, теперь делает?

Мой вопрос

Android Lollipop уже вышел.Есть ли поддержка шрифтов OpenType в Android?

Если все еще нет ничего легкого, то каков процесс? Я слышал о таких вещах, как Pango и Harfbuzz (который претендует на работу с Android) но я не нашел простых инструкций или руководств по их реализации. Самое близкое, что я нашел, этоИндийский текстовый рендерер, но это далеко не легко понять.

Смежные вопросы по StackOverflow

Эти вопросы показывают, что есть интерес к этой теме, но, на мой взгляд, они не получили удовлетворительного ответа. Некоторые из них также устарели. Я хочу знать, есть ли текущее решение.

Используйте функции шрифтов OpenType в AndroidОтображение перехвата и поддержка нелатинского или сложного языка сценариев в AndoridПоддержка CTL (сложный текстовый язык) в Android (Так в оригинале)Индийский язык поддерживает SDK, но не PhoneGapHarfBuzz начало работыIndic-Text-Renderer с использованием harfbuzz и freetypeЧто я пробовал

Я написал свой собственный движок рендеринга для отображения традиционного монгольского текста Unicode. Но написание движка рендеринга для конкретного языка - это заново изобретать колесо, если уже есть доступные шрифты OpenType. Кроме того, его нелегко адаптировать к другим языкам.

Ответы на вопрос(2)

Ваш ответ на вопрос