118*_*218 9 android text textview
我想创建一个文本阅读器,它将剪切文本并将其放在TextView(代表我的页面)和一个接一个.它们包含在ViewFlipper(代表我的整个文本)中,它允许我翻页.
通过利弊我不能聪明地削减我的文字.现在我将每个TextView限制为多个字符,但它非常不稳定.事实上,有些字母占用的空间比其他字母多.我们不能使用这种方法.
我们如何才能知道TextView中输入的文本数量是多少?
我试图手动找到我的View的最大大小.我援引:
float test = view.getPaint().measureText(myString);
Run Code Online (Sandbox Code Playgroud)
它运作良好.当我输入480个字母(0和1)时,我得到14,400,我的文字完全在屏幕内.附:
1 -> 12.0
0 -> 12.0
é -> 11.0
\n -> 13.0
\r -> 7.0
Run Code Online (Sandbox Code Playgroud)
总计填写页面 - > 14400
问题是换行和回车导致问题.
如果我的字符串中只有字母或数字,那么好:如果我们尊重最大尺寸14,400,屏幕上会显示所有内容.没问题!
通过利弊,如果换行或回车,它不起作用.即使我们尊重14400的限制,上面的文字并没有完全显示.
这是因为"MeasureText"方法;"仅为换行符返回13.但奇怪的是,换行符应该至少包含480以使其保持一致.
出版商如何将电子书(Moon Reader,+ Aldiko)的文字格式化得如此之好?每个页面都有相同的高度,文本结尾在同一个地方..
TextView您可以通过添加来固定行数android:maxLines="some_integer"。另一种方法是这样的:
if (myTextView.getMeasuredWidth() < myTextView.getPaint().measureText(myText)) {
myTextView.setHorizontalFadingEdgeEnabled(true);
myTextView.setHorizontallyScrolling(true);
}
Run Code Online (Sandbox Code Playgroud)
但如果文本太长,这会给最后一个字符添加模糊效果。