用于阿拉伯语的Android TextView measureText

Yas*_*oui 5 unicode android arabic textview

Paint.measureText与阿拉伯文本不准确.这是我尝试过的:

我有一个TextView tv1.

tv1.getWidth();给出480,这没关系.tv1.getPaint().measureText("?????? : ????????? ??? ??? ??? ??? ????? ???????");给出502,大于屏幕宽度.

结果不好,因为文本大约占线宽的80%!结果应该是400左右.

谢谢.

Mas*_*aBa 0

我今天遇到了这个问题。一切都按预期工作,您应该知道,当您的文本包含像\xd9\x91 \xd9\x90 \xd9\x8f \xd9\x8e 字符这样的阿拉伯元音时,它们都会作为单独的字符在宽度中计算,并且 android Paint.measureText 不知道它不应该考虑这些字符,因为它们不会添加额外的宽度,它们将绘制在其他字符的顶部和底部。

\n\n

解决方案是:您应该首先从文本中删除这些字符,然后测量文本。

\n