使用 getSkin().newDrawable("textFieldCursor1",Color.green)
,并为其添加最小宽度 greenTextFieldStyle.cursor.setMinWidth(2f);
。
这里提供一个包含"selectionframe"的完整皮肤:
Skin skin = new Skin();
skin.add(
"background",
new NinePatch(this.game.manager.get("hud/ninepatchframe.png",
Texture.class), 5, 5, 5, 5));
skin.add("cursor", this.game.manager.get("data/cursor.png"));
TextFieldStyle tStyle = new TextFieldStyle();
tStyle.font = getDefaultFont(25); //here i get the font
tStyle.fontColor = Color.BLACK;
tStyle.background = skin.getDrawable("background");
tStyle.cursor = skin.newDrawable("cursor", Color.GREEN);
tStyle.cursor.setMinWidth(2f);
tStyle.selection = skin.newDrawable("background", 0.5f, 0.5f, 0.5f,
0.5f);
this.nameField = new TextField("enter name here", tStyle);
这是我获取位图字体的方法。我使用来自libgdx的扩展从.ttf
创建它。
请查看链接了解如何添加原生文件。
这是使用它的代码:
public BitmapFont getDefaultFont(int size) {
FreeTypeFontGenerator generator = new FreeTypeFontGenerator(
Gdx.files.internal("fonts/font.ttf"));
defaultFont = generator.generateFont(size + 5);
return defaultFont;
}
gdx-freetype
扩展。代码可能已过时。如果我没记错的话,我的游戏是在9.7.x版本上运行的。 - bemeyer