Очевидно, что эта функция drawTextRun
не используется для английского или любого языка, в котором есть символы, которые не меняются (например, китайский).
Это полезно только для языка, в котором буквы изменяются в ожиданиисуществование соседних букв.Хорошим примером является арабский.
Обращайтесь к арабскому Unicode, https://en.wikipedia.org/wiki/Arabic_script_in_Unicode,, где язык.
например,
4-х буквенное арабское слово عربى
.(обратите внимание, что арабский справа налево)
Если индивидуально написано ع
ر
ب
ى
Обратите внимание, что форма отличается, когда она сама по себе.
С кодом ниже
private val TEXT = "عربى"
canvas.drawTextRun(TEXT,
1, TEXT.length - 1,
1, TEXT.length - 1,
x, y,
true, projectResources.paint)
Будет выдано
Однако, если мы изменим длину контекста, (т.е.показанное слово не является полным, но у него есть соседние первая и последняя буквы не показаны)
private val TEXT = "عربى"
canvas.drawTextRun(TEXT,
1, TEXT.length - 1,
0, TEXT.length,
x, y,
true, projectResources.paint)
Это будет как показано ниже
Короче говоря, несмотря на то, что одни и те же буквы существуют, когда в другом контексте они написаны по-разному.
Примечание: Спасибо https://hencoder.com/ui-1-3/ за то, что он пролил свет, чтобы понять использование этогоспособ.