标签:
在做一个游戏的时候总是避免不了要输入一些文字,Libgdx的TextFiled就一个处理输入的文本控件。使用TextFiled我们也可以设置输入密码。
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();
}
标签:
原文地址:http://blog.csdn.net/zqiang_55/article/details/51477416