Это на самом деле просто.Все, что вам нужно сделать, это использовать метод Paint.measureText()
, чтобы получить ширину текста, разделить на 2, чтобы получить его половину, а затем сдвинуть его влево, чтобы отцентрировать его.
Посмотрите на это,Я создал две float
переменные, которые содержат ширину каждого текста в Canvas:
float topTextMeasurement = topPaint.measureText(topText);
float bottomTextMeasurement = bottomPaint.measureText(bottomText);
Затем я выполнил вышеуказанную настройку в параметрах x ваших Canvas.drawText()
методов.
canvas.drawText(topText, topX - (topTextMeasurement/2), 200, topPaint);
canvas.drawText(bottomText, bottomX - (bottomTextMeasurement/2), canvas.getHeight() - 200, bottomPaint);
Но это только в том случае, если ваш текст не будет превышать ни одной строки.Для многострочных текстов, я предлагаю вам посмотреть DynamicLayout