2012-03-24 52 views
5

對於阿拉伯文字,Paint.measureText不準確。這是我試過的:用於阿拉伯語的Android TextView measureText

我有一個TextView tv1。

tv1.getWidth();給出480,這沒關係。 tv1.getPaint().measureText("المؤلف : عبدالرحمن ابن أبي بكر أبو الفضل السيوطي");給出502,它比屏幕寬度大。

不好的結果,因爲文本佔線寬的80%左右!結果應該在400左右。

謝謝。

+0

你好yZaroui,我也有同樣的問題。請幫助我,如果你有這個解決方案。 – Raj 2012-03-26 10:37:14

+0

我也是,有同樣的問題,而且問題出現在Galaxy Tab上!在Galaxy S3上工作得很好! – AVEbrahimi 2013-07-04 06:09:23

+0

我遇到了同樣的問題,請嘗試更改字體。 – 2016-05-31 09:16:37

回答

0

我今天遇到了這個問題。一切都按預期工作,你應該知道,當你的文本包含阿拉伯元音如ّ ِ ُ َ字符,他們都在計算寬度作爲單獨的字符和Android Paint.measureText不知道它不應該考慮這些字符,因爲他們不會添加額外的寬度,他們將被繪製在其他字符的頂部和底部。

解決方法是:您應該首先從文本中刪除這些字符,然後測量您的文本。