使用canvas.drawText在文本中换行符

use*_*353 3 java android newline drawtext android-canvas

我正在做一个 Android 游戏,我正在使用这样的函数在设备屏幕上显示文本:

public void drawString(String text, int x, int y, Paint paint) {
    canvas.drawText(text, x, y, paint);

}
Run Code Online (Sandbox Code Playgroud)

我尝试显示以下消息:

g.drawString("Player: " + playerString+ " :\n" + messageString,SCREENWIDTH / 2, SCREENHEIGHT / 2, paint);
Run Code Online (Sandbox Code Playgroud)

然而,我得到的是一个奇怪的字符(一个正方形),而不是换行符(\n)。

有人可以帮助我吗?

谢谢

Eli*_*ior 5

代替drawString调用drawText 和断线调用drawText两次并带有Y偏移量。

看看这里例如 将多行文本绘制到画布上


小智 5

public void drawString(Canvas canvas, String text, int x, int y, TextPaint paint) {
   if (text.contains("\n")) {
      String[] texts = text.split("\n");
      for (String txt : texts) {
         canvas.drawText(txt, x, y, paint);
         y += paint.getTextSize();
      }
   } else {
      canvas.drawText(text, x, y, paint);
   }
}
Run Code Online (Sandbox Code Playgroud)