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

时间:2013-04-14 10:36:17

标签: java android newline android-canvas drawtext

我正在玩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),我得到一个奇怪的角色(正方形)。

任何人都可以帮助我?

谢谢

2 个答案:

答案 0 :(得分:3)

而不是drawString来电drawText 对于断行,使用Y offset调用drawText两次。

以这里为例 Draw multi-line text to Canvas

答案 1 :(得分:0)

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);
    }
}