Newline character in a text using canvas.drawText

10,727

Solution 1

Instead of drawString call drawText and for break lines call drawText twice with Y offset.

look here for example Draw multi-line text to Canvas

Solution 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);
    }
}
Share:
10,727
user2204353
Author by

user2204353

Updated on June 04, 2022

Comments

  • user2204353
    user2204353 about 2 years

    I'm doing an Android Game, and I'm using a function like this to show texts on the device screen:

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

    And I try to show the following message:

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

    However instead of a newline (\n) I get a strange character (a square).

    Anyone can help me?

    Thanks