Libgdx之TextFiled 文本输入框

Posted zqiang_55

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 文本输入框的主要内容,如果未能解决你的问题,请参考以下文章

Libgdx之监听用户输入

Libgdx之监听用户输入

9.2.2Libgdx的输入处理之事件处理

textField如何限制金额输入

TextFiled 中输入金额

textView的提醒文字