سؤال

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

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

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);
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top