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/