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/