所以我使用 Canvas.drawText 在 Canvas 上绘制一些字符串 . 问题是我想在它之前绘制一个矩形,以便文本显示在矩形的中心 . 但我遇到了一个真正的问题 . 提供的 x 和 y 坐标到 drawText 实际上不是真实文本的“左上角”,而是在字符开始的行上 . 有一个方法 Paint.getTextBounds ,它返回一个矩形"with implied origin"在(0,0)将要绘制的文本 . 问题是原点是(0,0) . 该框的宽度和高度是正确的,但我不知道如何将其左上角放在画布上绘制的字符串的左上角 . 我想我应该使用 FontMetrics ,但由于很多值 FontMetrics 返回没有记录,我不确定如何将它们用于我的目的 .
2 回答
我最终做了
实际上,该文本以 x , y 为中心绘制 . 在此之前,我画了一个以 x 为中心的矩形, y ,宽度为 paint.measureText(text)
尝试使用绘制矩形
canvas.drawRect(x, y - Paint.GetTextSize(), x + Paint.measureText("text"), y, Paint);