2011-12-07 28 views
1

我正在Android下編寫閱讀器。頁面被分成不同的視圖。如何計算屏幕上有多少個字符可以正確地將文本分成不同的視圖?也許有一個簡單的方法來做到這一點? 用於將文本添加到瀏覽代碼:Android。計算適合屏幕的字符數

for (int i = 0; i < pages; i++) { 
      TextView textView = new TextView(getApplicationContext()); 
      textView.setText(text); 
      realViewSwitcher.addView(textView); 
     } 

回答

0

你很可能使基於文本大小的假設,也許這裏的違約將是12dip。然後假設平均字長是5個字。確定5個字符單詞需要多少次下沉。然後取出寬度和高度,並將其除以該數字。

+0

有沒有更容易的變種?我只需要做一些類似於閱讀器的東西,文本將被分割成許多頁面並滾動。 – Kyborg2011

+0

這可以工作。 getTextSize()獲取文本的大小。然後getMaxEms()*(你setMaxLines())來計算總面積。按字符添加字符,直到達到總表面。 – Ian

0

也許Paint可以幫助你。有像「measureText」或「breakText」的方法。您可以使用getPaint()從TextView中獲取Paint對象。

0

也許你可以以某種方式計算符合textview的ems數。

或者您可能會創建一個算法,試圖根據computerVerticalScrollRange()來匹配字符。通過試驗和錯誤,它可能最終找到完美的契合。