2012-01-19 47 views
1

現在我有一個代碼來計算段落的高度和寬度,並相應地設置它。但是,每當斷線(\ n)通過我的段落時,我都會遇到這個奇怪的問題。我使用此代碼來計算我的高度。我也計算寬度並確保一條線適合。在android中的線斷裂高度

float textSize = t.getTextSize(); 
Paint paint = new Paint(); 
paint.setTextSize(textSize); 

但是出於某種原因斷線不能有計算的高度這將意味着我錯過了幾行或告訴我在我進行的計算折斷線的線原因的一半。

我的問題是,我將如何計算它佔據的空間的折線高度?

回答

0

我無法解決這個問題。但是我確實試圖在寬度的終點邊緣刪除3個額外的字符。有效。然而真正的問題在於字符寬度。如果一個角色沒有用android進行註冊計算,如果你的字母完全不同於常規字母表,那麼實際輸出可能會非常不同。

使用此代碼可以確定端點的邊緣。

totalCurrentWidth = t.getPaint().measureText(s.substring(start, end)); 

但是沒有在系統中註冊的字符可能會有不同的結束或根本沒有結束(例如中國或臺灣)。

在verdana中使用的每個單獨字符期間,與文本的實際結果相比,它會產生不同的間距。

如果有人發現我的邏輯有問題,隨時評論我。畢竟我只是努力改進。