【问题标题】:Newline character in a text using canvas.drawText使用 canvas.drawText 的文本中的换行符
【发布时间】:2013-04-06 13:26:50
【问题描述】:

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

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

}

我尝试显示以下消息:

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

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

谁能帮帮我?

谢谢

【问题讨论】:

    标签: java android newline android-canvas drawtext


    【解决方案1】:

    而不是drawString 调用drawText 对于断线,使用 Y 偏移调用 drawText 两次。

    例如看这里 Draw multi-line text to Canvas

    【讨论】:

      【解决方案2】:
      public void drawString(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);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-04
        • 1970-01-01
        相关资源
        最近更新 更多