最近工作业务中遇到了,Android阅读器的需求。面临的第一个问题就是,如何根据屏幕的大小,将一本小说分成每一页需要显示的内容。简单来说,就是把一整本小说的String变成每一页恰好可以显示的String组成一个String[]。

  首先,我们要取得显示区域的宽高——width,height。

  然后,计算出,在当前字体大小下,一屏可以显示的行数rowCount。

  接下来,设置字体大小、对齐方式  

        mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);mPaint.setTextAlign(Paint.Align.LEFT);mPaint.setTextSize(14);

  接着,取出第一段 :

        int paragraphEnd = str.indexOf("\n");String currentParagraph = str.substring(0 , paragraphEnd);

  再得到第一行能够显示多少字:

        int breakIndex = mPaint.breakText(currentParagraph, true, width, null);Log.d("tag" , "the end index is =====" + breakIndex);currentParagraph = str.substring(breakIndex);

  如果这一段落显示完毕再去取下一段;如果这一页结束,段落依旧没有显示完成,则将剩下的字符串拼回原内容以后显示。

  这样就完成了一个阅读器分页显示的基本思路。

  Done.

  

  

  

转载于:https://www.cnblogs.com/fishbone-lsy/p/5024392.html

Android阅读器的思路(一)相关推荐

  1. 简单开发的android阅读器源码,包含了读取数据库和文件流处理功能

    原文:简单开发的android阅读器源码,包含了读取数据库和文件流处理功能 源代码下载地址:http://www.zuidaima.com/share/1838906559466496.htm 简单地 ...

  2. android 阅读器上下滑动_科研党利器——文石13.3寸墨水屏阅读器BOOX Max3

    此文出自知乎用户"Mars" 对 BOOX Max3 的评测,本文已征得作者授权转载. 2013年已对电纸书阅读器的种草,那个时候就有sony dpt的13.3寸大屏阅读器,鉴于穷 ...

  3. android 阅读器自动滚动,在Android手机上实现阅读器翻页效果.doc

    在Android手机上实现阅读器翻页效果 先了解各个字母表示的含义:A-把书页翻起来后看到的背面区域B-把书页翻起来后看到的下一页的一角C-当前页的可见部分.a-手指滑动页角到达的位置b-当前页翻起来 ...

  4. android 阅读器自动滚动,Android编程实现小说阅读器滑动效果的方法

    本文实例讲述了Android编程实现小说阅读器滑动效果的方法.分享给大家供大家参考,具体如下: 看过小说都知道小说阅读器翻页有好多种效果,比如仿真翻页,滑动翻页,等等.由于某种原因,突然想写一个简单点 ...

  5. 简单方法实现Android阅读器分页

    写了一个非常小的阅读器.在实现分页功能时,一直没有思路.后来想了一个非常特别的方法.经过测试可以完美的实现分页功能. 主要思路: 1.将文本内容填充到TextView中,调用setText一句搞定. ...

  6. 开源能翻译英文的Android阅读器

    Filter阅读是我最近写的一个Android的阅读器,用于看英文的书(中文暂时不支持,会乱码,下一版再改). 本文章由"智障的我"原创,转载注明. http://blog.csd ...

  7. android阅读器长按选择文字功能实现代码

    前言: 有时候我们需要实现长按选择文字功能,比如阅读器一般都有这个功能,有时候某个自定义控件上可能就有这种需求,如何实现呢?正好最近还算闲,想完善一下自己写的那个轻量级的txt文件阅读器(比如这个长按 ...

  8. 发布一个练笔的 Android 阅读器,轻微仿91 Android 阅读器【后续将提供源码】

    由于是练笔Demo,所以界面上和优化方面并没有太多考虑,只是实现了一些基础功能和一些阅读器所必要的几个功能 阅读界面如下: 底下滚动条,模仿91阅读器的方式显示,按照文本长度百分比记算显示进度条,文本 ...

  9. android阅读器里的 txt 文本处理分页功能的实现:

     txt 文本处理分页功能的实现: 网上找了txt文本分页,实现小说阅读器的功能找了很久找不到自己想要的,所以自己实现一个专门处理txt文本分页功能的类.有人建议用randomAccessFile 可 ...

最新文章

  1. 如何将半页纸论文写到十页?
  2. 灰度重心法原理与实现
  3. 【MVC】AJAX+PartialView实现商城首页的楼层加载
  4. C# - 创建List属性的简单方法
  5. 『震惊』秘密报告披露转基因食品危害
  6. Java数据类型分类
  7. android app记录执行日志 捕获奔溃异常 ,存储日志到文件
  8. Atitit. 二进制数据ascii表示法,与base64编码解码api 设计标准化总结java php c#.net
  9. NetSuite 巧做打印模板
  10. 智能家居内网服务器,手把手教你搭建自己的智能家居IOT系统
  11. python展示水果价格_小姨开水果店的,所以今天用Python写了一个水果店小系统!...
  12. TypeScript初始化
  13. 已成功拿下字节、腾讯、脉脉offer,这原因我服了
  14. a href点击无效_a标签失效的问题
  15. HashMap1.7中的线程安全问题
  16. mysql list类型_数据库list是什么类型数据
  17. 现今活跃在信息技术领域的卓越作者--张亚飞新作上市
  18. 关于FACEBOOK 的 REACT 专利许可证
  19. 计算机毕业设计java+ssm二手书交易管理系统(源码+系统+mysql数据库+Lw文档)
  20. 最小环问题(无向图)

热门文章

  1. Python惰性序列
  2. 【2020】微软全能考试券 - 适用于AZ,DP全系认证 - 最讲武德的考试码! - 高级云计算架构师( GJYJSJGS) - 100%助力认证
  3. axure中文语言包安装
  4. 从Oracle导出数据到TXT文件从TXT文件导入数据到Oracle
  5. EXCEL常见问题五十问题解答
  6. 复古纹路绩效考核培训PPT模板
  7. 第16届百度智能车比赛-方案制定与选择(技术报告)
  8. Xilinx Alveo加速卡开发环境搭建
  9. python下载pytorch(通过pip+清华源)
  10. FizzBuzz与写代码的“一万”个细节