Cómo hacer un script tradicional mongol TextView en Android

¿Cómo se hacen los visados de texto mongol verticales (con ajuste de línea de izquierda a derecha) para aplicaciones de Android?

Antecedentes

Android tiene bastante buen soporte para muchos de los idiomas del mundo, incluso idiomas RTL como el árabe y el hebreo. Sin embargo, no hay soporte integrado para idiomas de arriba a abajo comomongol tradicional (que todavía está muy vivo en Mongolia Interior y no debe confundirse conCirílico mongol) El siguiente gráfico muestra la dirección del texto con inglés agregado para mayor claridad.

Dado que esta funcionalidad no está integrada en Android, hace que casi todos los aspectos del desarrollo de aplicaciones sean extremadamente difíciles. También hay muy, muy poca información disponible en línea. (Uno de lospocas preguntas SO relacionadas ni siquiera tiene una buena respuesta.) Existen varios desarrolladores de aplicaciones para los mongoles tradicionales, pero ya sea por razones comerciales o de otro tipo, no parecen hacer que su código sea de código abierto.

Debido a estas dificultades, me gustaría hacer una serie de preguntas de StackOverflow que pueden servir como un lugar central para recopilar respuestas para algunos de los problemas de programación más difíciles relacionados con el desarrollo tradicional de aplicaciones de Mongolia. Incluso si no sabe leer y escribir en mongol, su ayuda para revisar el código, hacer comentarios y preguntas, dar respuestas o incluso votar la pregunta sería apreciada.

Vista de texto vertical mongol

Un TextView de Mongolia debe tener los siguientes requisitos:

Admite una fuente tradicional mongolMuestra el texto verticalmente de arriba a abajoEl ajuste de línea va de izquierda a derecha.Los saltos de línea ocurren en un espacio (igual que el inglés)

(Tener TextView compatible con la fuente mongol no es un requisito absoluto ya que TypeFace se puede configurar más adelante, pero es conveniente cuando se utilizan muchas TextViews).

Mi respuesta está a continuación, pero agradezco otras formas de resolver este problema.

Otras preguntas relacionadas en esta serie:Cómo hacer un script de Mongolia tradicional EditText en AndroidCómo hacer un script ListView tradicional mongol en AndroidMás por venir ... (Brindis, Diálogo, Menú)

iOS:

¿Cómo se hace un texto vertical UILabel y UITextView para iOS en Swift?