android 阅读器分页读取篇幅
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; }