当前位置: 代码迷 >> Android >> android 阅读器分页读取篇幅
  详细解决方案

android 阅读器分页读取篇幅

热度:68   发布时间:2016-05-01 17:09:26.0
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; } 
  相关解决方案