1. ホーム
  2. android

[解決済み] キャンバスに複数行のテキストを描画する

2022-07-14 08:25:50

質問

簡単な質問なのですが、なかなか例題が見つからないので...。私は複数行のテキストをカスタム View を経由して Canvas で、そして onDraw() を持っています。

...
String text = "This is\nmulti-line\ntext";
canvas.drawText(text, 100, 100, mTextPaint);
...

この結果、改行されることを期待していたのですが、その代わりに \n が表示されます。

何かご指摘がありましたら、よろしくお願いします。

ポール

どのように解決するのですか?

残念ながら、Android は \n が何であるかを知りません。あなたがしなければならないのは \n を取り除き、次の行のテキストを取得するためにYをオフセットすることです。つまり、こんな感じ。

canvas.drawText("This is", 100, 100, mTextPaint);
canvas.drawText("multi-line", 100, 150, mTextPaint);
canvas.drawText("text", 100, 200, mTextPaint);