Mar*_*nov 5 java graphics android android-canvas
所以我使用Canvas.drawText在Canvas上绘制一些字符串.问题是我想在它之前绘制一个矩形,以便文本显示在矩形的中心.但我遇到了一个真正的问题.所提供的X和Ÿ坐标的drawText其实是不是"的左上角真实文本的"一角,而是对其中的字符开头的行.Paint.getTextBounds有一个方法,它在将要绘制的文本的(0,0)处返回一个"具有隐含原点"的矩形.问题是原点是(0,0).该框的宽度和高度是正确的,但我不知道如何将其左上角放在画布上绘制的字符串的左上角.我想我应该使用FontMetrics,但由于FontMetrics返回的很多值都没有记录,所以我不确定如何将它们用于我的目的.
Mar*_*nov 13
我最终做了
FontMetrics fm = new FontMetrics();
paint.setTextAlign(Paint.Align.CENTER);
paint.getFontMetrics(fm);
canvas.drawText(text, x, y + -(fm.ascent + fm.descent) / 2, paint);
Run Code Online (Sandbox Code Playgroud)
这实际上是以x,y为中心绘制文本.在此之前,我绘制一个以x,y为中心的矩形,宽度为paint.measureText(text)
| 归档时间: |
|
| 查看次数: |
3846 次 |
| 最近记录: |