Java 测量文本高度(使用自己的字体)

Java 测量文本高度(使用自己的字体),java,android,text,fonts,measure,Java,Android,Text,Fonts,Measure,我正在为Android编写一个游戏,需要找出一个文本的高度,以便放置 把课文读对了 我在画布上画的是这样的表面视图: paint.setTypeface(tfSign); paint.setColor(Color.WHITE); paint.setTextSize(24); canvas.drawText("Level", table[1].getX(), table[1].getY()+measureTextHeight("Level " + Integer.toSt

我正在为Android编写一个游戏,需要找出一个文本的高度,以便放置 把课文读对了

我在画布上画的是这样的表面视图:

paint.setTypeface(tfSign);
    paint.setColor(Color.WHITE);
    paint.setTextSize(24);

    canvas.drawText("Level", table[1].getX(), table[1].getY()+measureTextHeight("Level " + Integer.toString(plant[currentViewPoint - 1].getLevel()), paint), paint);
如您所见,我正在使用一种方法来测量文本高度:

public int measureTextHeight(String text, Paint paint) {
    Rect result = new Rect();
    // Measure the text rectangle to get the height
    paint.getTextBounds(text, 0, text.length(), result);
    return result.height();
}
但这种方法似乎返回了一个错误的高度。 我想这是因为我使用的是自定义字体

希望你能告诉我,我怎样才能得到正确的文字高度!
谢谢:)

你试过paint.getFontMetrics吗?例如,P在基线之下,g在基线之上,H可能会读错,我认为你的代码是正确的,但是你在错误的地方调用它。在调用任何视图的requestlayout()之后,应该调用该视图的所有度量属性。如果调用任何函数,如getNumberoflines,如果视图尚未放置,则会得到false或nullNo,我没有尝试getFontMetrics。你能给我一个代码示例吗?