我有一个很长的文本,我希望它与TextView一起显示。我的文字比可用空间长得多。但是我不想使用滚动,但ViewFlipper要翻到下一页。如何从第一个TextView中检索未显示的行,因为视图是短的,以便我可以将它们粘贴到下一个TextView中?
编辑:我找到了解决问题的方法。我只需要使用带有StaticLayout的自定义视图,如下所示:
public ReaderColumView(Context context, Typeface typeface, String cText) {
super(context);
Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
dWidth = display.getWidth();
dHeight = display.getHeight();
contentText = cText;
tp = new TextPaint();
tp.setTypeface(typeface);
tp.setTextSize(25);
tp.setColor(Color.BLACK);
tp.setAntiAlias(true);
StaticLayout measureLayout = new StaticLayout(contentText, tp, 440, Alignment.ALIGN_NORMAL, 1, 2, true);
Boolean reachedEndOfScreen = false;
int line = 0;
while (!reachedEndOfScreen) {
if (measureLayout.getLineBottom(line) > dHeight-30) {
reachedEndOfScreen = true;
fittedText = contentText.substring(0, measureLayout.getLineEnd(line-1));
setLeftoverText(contentText.substring(measureLayout.getLineEnd(line-1)));
}
line++;
}
}
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
StaticLayout textLayout = new StaticLayout(fittedText, tp, 440, Alignment.ALIGN_NORMAL, 1, 2, true);
canvas.translate(20,20);
textLayout.draw(canvas);
}
这还没有优化,但你明白了。 我希望它可以帮助像我一样有类似问题的人。
答案 0 :(得分:0)
在答案中,您可以使用StaticLayout来测量和绘制文本。然而,