在Android中以多行显示文本

时间:2011-01-25 15:34:02

标签: android drawrect drawtext

我有一个图形化的Android项目,我提供用户界面功能的主要技巧是使用drawrect和drawtext在屏幕上绘制一个带有标签的矩形。然后,我捕捉触摸事件并检查它们是否出现在矩形中 - 当它们发生时,瞧,我有一个按钮。

它可能不是最优雅的方法,但似乎是一种魅力。然而,并非所有的标签都在一条线上看起来都很好,我想把它们写在两条上。我想我可以编写两条单独的行并手动设置出来,使文本间隔得很好并居中,但我想尽可能避免这种情况。

在Android中,是否有一种简单的方法来分割文本标签并将其写出一步?

谢谢, R上。

2 个答案:

答案 0 :(得分:0)

我认为没有一种简单的方法可以实现这一点,您必须测量文本并使用ButtonWidth - TextWidth / 2的偏移量绘制它。

答案 1 :(得分:0)

在Android应用程序中,您可以创建布局并使用各种小部件填充它。其中一个潜在的小部件是按钮,如果您使用它,如果标签的长度要求,它将在多行显示您的按钮标签...

但是,我的应用程序是SurfaceRunner,据我所知,此视图不支持按钮。我通过绘制各种矩形并检查其边界内的屏幕触摸来使用按钮功能。这适用于我的目的,但不以任何方式自动执行任何显示任务(如按钮小部件)。为了在两行上显示长标签,必须在代码中明确地执行此操作。哦,好吧。

幸运的是,它只有一个额外的一行:

canvas.drawRoundRect (Button, ROUNDOVER_SIZE-1, ROUNDOVER_SIZE-1, paint);
canvas.drawText (Text1, Button.centerX() - paint.measureText (Text1)/2, Button.centerY() - 10, paint);
canvas.drawText (Text2, Button.centerX() - paint.measureText (Text2)/2, Button.centerY() + 20, paint);

显然,如果我使用比“10”和“20”更自动的东西会更酷,但这确实可以完成工作。