我想用textView做一个分页显示的阅读工具,目前的问题是我无法知道textview能够显示多少字符?
我想过一个办法是,计算textview的宽度,高度,然后算出可以显示的文字长度,然后根据字体大小去截取字符。但随分辨率,行高,换行,等因素的影响,任不能正确截取,希望大侠指导,如何用Textview显示文字并可实现翻页,或者说如何知道当前textview实际显示了多少字符。
可能用TextView做分页显示方向就是错误的。
我想过一个办法是,计算textview的宽度,高度,然后算出可以显示的文字长度,然后根据字体大小去截取字符。但随分辨率,行高,换行,等因素的影响,任不能正确截取,希望大侠指导,如何用Textview显示文字并可实现翻页,或者说如何知道当前textview实际显示了多少字符。
可能用TextView做分页显示方向就是错误的。
每行显示的字数=(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;