Как отцентрировать текст на холсте вертикально - PullRequest
1 голос
/ 31 марта 2019

Мне удалось отцентрировать текст по горизонтали с помощью Align.CENTER. Но это не центрирует текст по вертикали.

paint.setTextAlign(Align.CENTER);
canvas.drawText(text, fx, fy, paint);

Как отцентрировать текст по вертикали?

Ответы [ 2 ]

0 голосов
/ 31 марта 2019
 StaticLayout yourLayout = new StaticLayout(text, mTextPaint,
            canvas.getWidth(), Alignment.ALIGN_NORMAL, 1.0f, 0.0f,
            false);
 canvas.translate((canvas.getWidth() / 2) - (yourLayout.getWidth() / 2), (canvas.getHeight() / 2) - ((yourLayout.getHeight() / 2)));

Эта работа для меня.

0 голосов
/ 31 марта 2019

Align.CENTER для горизонтального выравнивания.Если вы хотите центрировать по вертикали, вам нужно найти максимальную высоту для текста, а затем расположить вертикально в пределах холста, переводя по вертикали, используя canvas.translate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...