读书人

android 阅读器分页读取篇幅

发布时间: 2012-08-30 09:55:54 作者: rapoo

android 阅读器分页读取字数

// 本方法 分行又分页public static ArrayList<ArrayList<String>> getPageContentStringInfo(    Paint m_paint, String content, int pageLines, float pageWidth) {   char ch;   int w = 0;   int istart = 0;   int lineNum = 0;   ArrayList<ArrayList<String>> contentList = new ArrayList<ArrayList<String>>();   ArrayList<String> cl = null;   // 内容长度   for (int i = 0; i < content.length(); i++) {    if (cl == null)     cl = new ArrayList<String>();    ch = content.charAt(i);    float[] widths = new float[1];    String srt = String.valueOf(ch);    m_paint.getTextWidths(srt, widths);    if (ch == '\n') {     // 如果遇到断行符     lineNum++;     cl.add(content.substring(istart, i));     istart = i + 1;     w = 0;    } else {     // 遇到字符     w += (int) (Math.ceil(widths[0]));     // 当长度小于宽度时     if (w > pageWidth) {      lineNum++;      cl.add(content.substring(istart, i));      istart = i;      i--;      w = 0;     } else {      if (i == (content.length() - 1)) {       lineNum++;       cl.add(content.substring(istart, content.length()));      }     }    }    if (lineNum == pageLines || i == (content.length() - 1)) {     contentList.add(cl);     System.out.println(cl.toString());     cl = null;     // 当最后一个字符时的行数     lines = lineNum;     lineNum = 0;    }   }   return contentList; } 

读书人网 >Android

热点推荐