Java 测量文本高度(使用自己的字体)
我正在为Android编写一个游戏,需要找出一个文本的高度,以便放置 把课文读对了 我在画布上画的是这样的表面视图: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
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。你能给我一个代码示例吗?