Libgdx之TextFiled 文本输入框

在做一个游戏的时候总是避免不了要输入一些文字,Libgdx的TextFiled就一个处理输入的文本控件。使用TextFiled我们也可以设置输入密码。

TextField介绍

TextField是一个单行的文本输入,默认的宽度是150,preHeight是font的高度的或者是背景图片的高度。在桌面版中支持快捷键ctrl+c/ctrl+v。

在手游中特别是中文手游中,由于Libgdx对中文支持的不友好,特别是手机游戏屏幕比较小,因此特别不建议在游戏中大量输入中文。

此外TextField可以设置为密码模式,用指定的字符串代替显示字符。
测试代码

    TextField textField;

    Stage stage;
    Skin skin;

    @Override
    public void create() {
        skin = new Skin(Gdx.files.internal("uiskin.json"));
        stage = new Stage();
        Gdx.input.setInputProcessor(stage);

        textField = new TextField("", skin);
        textField.setSize(textField.getPrefWidth(), textField.getPrefHeight());
        Gdx.app.log("TAG", "preWidth=" + textField.getPrefWidth() + "preHeight=" + textField.getPrefHeight());
        // 设置提示文字
        textField.setMessageText("Enter ps");
// 设置文字输入对齐模式 居中
        textField.setAlignment(Align.center);
        // 设置是否为密码模式
        textField.setPasswordMode(true);
        // 如果是密码模式,那么设置替换密码的字符
        textField.setPasswordCharacter('*');
        // 设置光标默认闪烁时间,为了便于观察设置时间比较长,libgdx默认是0.32秒
        textField.setBlinkTime(0.2f);
        textField.setTextFieldListener(new TextFieldListener() {

            @Override
            public void keyTyped(TextField textField, char c) {
// if (c == '\n') {
// textField.getOnscreenKeyboard().show(true);
// 
// }
                System.out.println("List="+textField.getText());
            }
        });
        stage.addActor(textField);
    }

    @Override
    public void render() {
        Gdx.gl.glClearColor(0.39f, 0.58f, 0.92f, 1.0f);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        stage.act();
        stage.draw();
    }

    @Override
    public void dispose() {
        skin.dispose();
        stage.dispose();
    }

Libgdx之TextFiled 文本输入框_第1张图片

你可能感兴趣的:(Libgdx之TextFiled 文本输入框)