2011-12-07 23 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()来匹配字符。通过试验和错误,它可能最终找到完美的契合。