Android TextView measureText для арабского языка - PullRequest
5 голосов
/ 24 марта 2012

Paint.measureText не соответствует арабскому тексту.Вот что я попробовал:

У меня есть TextView TV1.

tv1.getWidth(); дает 480, что нормально.tv1.getPaint().measureText("المؤلف : عبدالرحمن ابن أبي بكر أبو الفضل السيوطي"); дает 502, что больше ширины экрана.

Плохой результат, поскольку текст занимает около 80% ширины строки!Результат должен быть около 400.

Спасибо.

1 Ответ

0 голосов
/ 04 мая 2016

Я столкнулся с этой проблемой сегодня. все работает, как и ожидалось, и вы должны знать, что когда ваш текст содержит арабские гласные, такие как ّ ِ ُ َ символы, все они рассчитываются по ширине, как отдельные символы, и Android Paint.measureText не знает, что он не должен принимать во внимание эти символы, потому что они не добавят дополнительную ширину, и они будут нарисованы сверху и снизу других символов.

решение заключается в следующем: вы должны сначала удалить эти символы из текста, а затем измерить ваш текст.

...