Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中以多行显示文本_Android_Drawrect_Drawtext - Fatal编程技术网

在Android中以多行显示文本

在Android中以多行显示文本,android,drawrect,drawtext,Android,Drawrect,Drawtext,我有一个图形化的Android项目,我提供用户界面功能的主要技巧是使用drawrect和drawtext在屏幕上绘制一个带有标签的矩形。然后,我捕捉触摸事件并检查它们是否出现在矩形中——当它们出现时,瞧,我有一个按钮 这可能不是最优雅的方法,但似乎是一种魅力。然而,并不是我所有的标签都在一行上看起来很好,我想把它们写在两行上。我想我可以写两行单独的文字,然后手动安排文字的间距和居中,但如果可能的话,我想避免这种情况 在安卓系统中,有没有一种简单的方法可以拆分文本标签并在一个步骤中将其写出 谢谢,

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

这可能不是最优雅的方法,但似乎是一种魅力。然而,并不是我所有的标签都在一行上看起来很好,我想把它们写在两行上。我想我可以写两行单独的文字,然后手动安排文字的间距和居中,但如果可能的话,我想避免这种情况

在安卓系统中,有没有一种简单的方法可以拆分文本标签并在一个步骤中将其写出

谢谢,
R.

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

在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”更自动的东西,那会更酷,但这确实完成了任务。

我现在就是这样做的,将文本水平居中于矩形中。这是我不太期待的两行的垂直居中。您也可以通过使用//int textHeight=(int)(paintDescription.getFontSpacing());,将要使用的行数相加,然后使用相同的方法。总之,这是一种痛苦:)是的。最后,我给了编程老师一个冒失的机会,并使用了一些神奇的数字。它并不完美,但看起来确实不错。无论如何,谢谢你。