如您所见,数字未正确显示。他们应该看起来像:173和15.4,但他们不是。为什么会这样?我真的不知道。它只发生在较大的字体上,而不是较小的字体。
此外,该错误仅出现在具有更高分辨率的智能手机上。当我将应用程序作为桌面应用程序或较低分辨率(480 x 800)的手机启动时,它不会出现。
我正在使用TTF字体动态生成字体。 我的代码:
生成:
public static BitmapFont generateFont(int size, String fontPath) {
float scale = 1.0f * Gdx.graphics.getWidth() / Game.WIDTH;
if(scale < 1)
scale = 1;
FreeTypeFontGenerator.FreeTypeFontParameter params = new FreeTypeFontGenerator.FreeTypeFontParameter();
generator = new FreeTypeFontGenerator(Gdx.files.internal(fontPath));
params.size = (int) (size * scale);
BitmapFont font = generator.generateFont(params);
font.getData().setScale((float) (1.0 / scale));
font.getRegion().getTexture().setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);
dispose();
return font;
}
然后我生成字体:
FONT_115 = FontGenerator.generateFont(115, FONT_TTF_DEFAULT);
然后我用这个字体制作一个文本:
layout = new GlyphLayout(font, "");
fontCache = new BitmapFontCache(font);
layout.setText(font, text);
fontCache.setText(layout, position.x - layout.width / 2, position.y);
所以我的问题: 为什么较大字体的文字无法正确显示?