Java - Libgdx:如何更改textfield的字体大小?

时间:2016-10-14 15:45:58

标签: fonts libgdx size textfield

我一直在寻找如何更改文本字段的字体大小,我在stackoverflow上找到了这个解决方案:

TextField.TextFieldStyle textFieldStyle = skin.get(TextField.TextFieldStyle.class);
textFieldStyle.font.scale(1.6f);

问题是我不使用textfieldstyle,这是我的代码:

réponse = new TextField("", skin);
réponse.setPosition(stage.getWidth() / 2 - 445, stage.getHeight() / 1 - 1600);
réponse.setSize(900, 120);
stage.addActor(réponse);
réponse.setTextFieldListener(new TextField.TextFieldListener() {
    @Override
    public void keyTyped(TextField textField, char c) {
        if(réponse.getText().equals("")){
            réponse.setText("");
        } else if(réponse.getText().equals("riviere")){
            game.setScreen(new Stage1(game));
            music.stop();
        }
        else if(!réponse.getText().equals("riviere")){
            ecrireLeTexte = true;
        }
    }
});

也许是getStyle()的解决方案?

1 个答案:

答案 0 :(得分:0)

您发布的解决方案和您现在拥有的代码几乎相同。

您正在使用TextField创建Skin。您还可以使用TextField创建TextFieldStyle。您可以按照显示的方式创建一个全新的TextFieldStyle,而不是创建全新的Skin

您的代码将如下所示:

TextField.TextFieldStyle textFieldStyle = skin.get(TextField.TextFieldStyle.class);
textFieldStyle.font.scale(1.6f);

réponse = new TextField("", textFieldStyle);

使用TextField创建Skin时,这几乎就是幕后发生的事情。以下是来自libGDX代码的TextField(String, Skin)的构造函数:

public TextField (String text, Skin skin) {
    this(text, skin.get(TextFieldStyle.class));
}

你可以看到它本质上在做:

TextButtonStyle style = skin.get(TextFieldStyle.class);
textField = new TextField(text, style);

这与您的新代码相同。