我想用textView做一个分页显示的阅读工具,目前的问题是我无法知道textview能够显示多少字符?
我想过一个办法是,计算textview的宽度,高度,然后算出可以显示的文字长度,然后根据字体大小去截取字符。但随分辨率,行高,换行,等因素的影响,任不能正确截取,希望大侠指导,如何用Textview显示文字并可实现翻页,或者说如何知道当前textview实际显示了多少字符。
可能用TextView做分页显示方向就是错误的。
我想过一个办法是,计算textview的宽度,高度,然后算出可以显示的文字长度,然后根据字体大小去截取字符。但随分辨率,行高,换行,等因素的影响,任不能正确截取,希望大侠指导,如何用Textview显示文字并可实现翻页,或者说如何知道当前textview实际显示了多少字符。
可能用TextView做分页显示方向就是错误的。
解决方案 »
- android下载中文名文件失败,求指点
- 求android4 vpnservice示例
- 请问, 想在android --> 设置--> 显示中, 加一些自定义的选项, 这个如何加? (要在什么文件中加)
- 各位高手来帮帮忙,看看这个是安卓什么特效?
- 如何使矩形边框以自己中点为旋转中心,能手动旋转
- 想入门的菜鸟,发现ECLIPSE和ANDROID SDK有点搓
- Android 中封装接口的问题
- android Vieweb 返回上个页面,菜单标签被选择
- 怎样避免同一个activity被打开多次?
- 安卓怎么实现拦截事件并且增加逻辑处理
- 问个服务播放 MP3 的问题...音乐放着放着老停掉
- Android关于GridView与使用dimen资源的问题!
每行显示的字数=(view.width) / (字体的宽度)
显示的字肯定是Paint绘制出来的,通过调用measureText函数来获取文本的宽度
一行一行的填充字体。,问题是行数未知。
int TvWeight = 100;
int RowCount = 20;
for(int i=0;i<RowCount;i++)
{
//第一步:根据字体得到一行可显示的字符
int RowFontCount = TVWeight / FontSize;
//第二步:根据 第一步得到的字符数截取小说文字
String SbuStr = NovelText.substring(startNo,endNo);
//第三步:判断截取得到的文字的像素长度,是否考虑文字间距的问题
int GetSubstrLenght = 200;
//根据第三步得到长度和行长度比较,
//如果截取字符串中有换行符,则结束当前行的比较,因为按照 fontsize得到字符串一定不会超出行宽度的。
//如果截取后的字符长度小于行长度则给截取字符串每次添加一个字符继续和行长度比较,直到字符和长度刚好显示合适为止。
}
然后可以求出总页数=textView.contentSize.height/textView的高度
设置初页数currentPage = 1;
往上,往下翻currentPage +1,-1;