我用Align.CENTER设法使文本水平居中,但它不能垂直居中。
paint.setTextAlign(Align.CENTER);
canvas.drawText(text, fx, fy, paint);
如何将文本垂直居中?
发布于 2019-03-31 22:15:45
Align.CENTER
用于水平对齐。如果要垂直居中,则需要找到文本的最大高度,然后通过使用canvas.translate
进行垂直平移来在画布中进行垂直定位
发布于 2019-03-31 22:30:38
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)));
这对我很有效。
https://stackoverflow.com/questions/55441731
复制相似问题