我需要在Android和纯Java中测量特定字体中文本的大小,并且它需要具有完全相同的大小。我知道如何在Android和Java中测量字体大小,但我已经意识到,这些措施是不同的。
显示问题的代码:
Android中的我的大小为35.0 / 10.0
paint.setTypeface(Typeface.SANS_SERIF);
Rect bounds = new Rect();
paint.getTextBounds("L y d i a n", 0, sText.length(), bounds);
float textwidth = bounds.width(); //35.0
float textheight = bounds.height(); //10.0
在纯Java中,我的大小为34.0 / 10.0
float textwidth = getTextWidth("L y d i a n", (int)fTextSize, "Sans"); //34.0
float textheight = getTextHeight("L y d i a n", (int)fTextSize, "Sans"); //10.0
public float getTextWidth(String text, int FontSize, String Fonttype){
AffineTransform affinetransform = new AffineTransform();
FontRenderContext frc = new FontRenderContext(affinetransform,true,true);
Font font = new Font(Fonttype, Font.PLAIN, FontSize);
int textwidth = (int)(font.getStringBounds(text, frc).getWidth());
return textwidth;
}
我正在测试平板电脑上的Android Code Snippet和我计算机上的JAVA AWT Snippet Code。
我确信我没有处理相同的字体,但我无法看到问题。是" sans"在Java中与Android中的SANS_SERIF相同?我希望有人看到衡量标准差异的原因。
有人可以帮忙吗?