使文本完全适合屏幕尺寸

| 我有一个很长的文字,所以我决定将其分成几页,然后我在每行上滑动一下,滚动到下一页。我的操作方式是:
    NumberOfPages=text.length()/CharPerPage;    //CharPerPage=500;  
    NumberOfPages++;        

    Chapters.add(text.indexOf(\" \", CurrentPage*CharPerPage));
    CurrentPage++;
    int tmp=0;
    for(int i =NumberOfPages;i>0;i--)
    {           
         tmp =(CurrentPage*CharPerPage);
        if(tmp>text.length())
        {
            Chapters.add(text.length());    
            break;
        }
        else
        {
        Chapters.add(text.indexOf(\" \", tmp));   
        CurrentPage++;
        }
    }
所以我将文本分为几页,每页有500个字符。但是,这不是一件好事,因为Android具有不同的屏幕尺寸和形状,并且还计算了换行符,因此它可能超出了屏幕... 因此,有人可以建议一种方法来知道需要多少字符来填充屏幕,以便我可以将其余文本制作到另一页吗?谢谢。     
已邀请:
好吧,这是一个镜头-一个相当笨拙的镜头,但总之: *您需要知道是否有任何给定的文本行在您的视图中适合宽度方向 *您需要知道您有多少行 *您需要处理嵌入式换行符 所以 某些文字会适合任何给定的行吗
  private boolean isTooLarge (TextView text, String newText) {    
     float textWidth = text.getPaint().measureText(newText);
     return (textWidth >= text.getMeasuredWidth ());
  } 
您的textview有几行:
numLinesPerPage=mTextView.getHeight()/mTextView.getLineHeight();  //not this doesn\'t handle special cases where you\'ve changed the font, bolded it etc
使用这两个工具,您可以遍历文本并添加单词,以跟踪要使用的行数(如果文本包含换行,则可以处理换行) 注意:getHeight无法在构造函数中调用,因为它尚不知道高度-如果您有自定义控件,也可以在onDraw或onMeasure中进行。     

要回复问题请先登录注册