用于阿拉伯语的Android TextView measureText

时间:2012-03-24 14:36:51

标签: android unicode textview arabic

使用阿拉伯文本时,Paint.measureText不准确。这是我试过的:

我有一个TextView tv1。

tv1.getWidth();给出了480,这没关系。 tv1.getPaint().measureText("المؤلف : عبدالرحمن ابن أبي بكر أبو الفضل السيوطي");给出502,它大于屏幕宽度。

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

谢谢。

1 个答案:

答案 0 :(得分:0)

我今天遇到了这个问题。一切都按预期工作,你应该知道,当你的文本包含像ّ ِ ُ َ字符这样的阿拉伯元音时,它们都被计算在宽度上作为单独的字符和android.PressTereshText不知道它不应该把这些字符带入帐户,因为它们不会增加额外的宽度,它们将被绘制在其他字符的顶部和底部。

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