- // 本方法 分行又分页
- 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 阅读器分页读取字数
最新推荐文章于 2022-10-16 15:48:04 发布