我设法使用Align.CENTER将文本水平居中。 但它不会使文本垂直居中。
paint.setTextAlign(Align.CENTER);
canvas.drawText(text, fx, fy, paint);
如何使文本垂直居中?
答案 0 :(得分:0)
Align.CENTER
用于水平对齐。如果要垂直居中,则需要找到文本的最大高度,然后通过使用canvas.translate
答案 1 :(得分:0)
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)));
这对我有用。