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

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

糟糕的结果,因为文本占用了大约 80% 的线宽!结果应该在 400 左右。

谢谢你。

最佳答案

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

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

关于Android TextView measureText 阿拉伯语,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9852576/

10-10 23:02