【发布时间】:2011-11-16 22:16:10
【问题描述】:
我想创建一个文本阅读器,它将文本剪切并一个接一个地放入 TextView(代表我的页面)中。这些包含在 ViewFlipper(代表我的整个文本)中,它允许我翻页。
由于缺点,我不能智能地剪切我的文本。现在我将每个 TextView 限制为多个字符,但它非常不稳定。确实有些字母比其他字母占用更多空间..我们不能使用这种方法。
我们如何知道有多少文本会进入 TextView?
我试图手动找到我的视图的最大尺寸。 我调用了:
float test = view.getPaint().measureText(myString);
效果很好。当我输入 480 个字母(0 和 1)时,我达到了 14,400 个并且我的文本完全在屏幕内。与:
1 -> 12.0
0 -> 12.0
é -> 11.0
\n -> 13.0
\r -> 7.0
总共填满页面 -> 14400
问题是换行和回车导致问题。
如果我的字符串中只有字母或数字,那就太好了:如果我们遵守最大大小 14,400,那么所有内容都会显示在屏幕上。没问题!
缺点是,如果换行或回车,则不起作用。即使我们尊重 14400 的限制,上面的文字并没有完全显示出来。
这是因为“MeasureText”方法;”只返回13换行。但是很奇怪,换行至少要占480才能保持一致。
出版商如何将电子书(Moon Reader,+ Aldiko)的文本格式化得这么好?每个页面都有相同的高度,文本在相同的地方结束..
【问题讨论】: