Java 多重文本。Libgdx
如何装箱多行文本?我尝试使用标签,但文本只有一行Java 多重文本。Libgdx,java,android,libgdx,Java,Android,Libgdx,如何装箱多行文本?我尝试使用标签,但文本只有一行 Table table = new Table(); table.setPosition(0,0); table.setSize(800,440); label = new Label("Some long string here...", skin); label.setFillParent(true); label.setAlignment(center); label.setPosition(0,0); label.setWidth(40
Table table = new Table();
table.setPosition(0,0);
table.setSize(800,440);
label = new Label("Some long string here...", skin);
label.setFillParent(true);
label.setAlignment(center);
label.setPosition(0,0);
label.setWidth(40);
label.setHeight(label.getPrefHeight());
label.setText(tutortext);
table.addActor(label);
stage.addActor(table);
stage.setDebugAll(true);
使用setWrap(true)代码>在标签上
据博士说
- 如果为false,文本将仅在包含换行符的位置换行(\n)。标签的首选大小为文本边界
- 如果为true,文本将使用标签的宽度进行换行。标签的首选宽度将为0,预计外部将设置标签的宽度。启用省略号时不会进行换行。默认值为false
- 启用“包裹”时,标签的首选高度取决于标签的宽度。在某些情况下,标签的父级需要布局两次:一次设置标签的宽度,第二次调整标签的新首选高度
我用一个小例子进行了测试:
public class MultiLine extends ApplicationAdapter {
Stage stage;
Skin skin;
@Override
public void create() {
stage=new Stage();
skin=new Skin(Gdx.files.internal("skin/glassy-ui.json"));
Label label=new Label("MULTILINE IN LIBGDX GAME DEVELOPMENT",skin);
label.setWrap(true);
Table table=new Table();
table.setFillParent(true);
table.add(label).width(150);
stage.addActor(table);
}
@Override
public void render() {
Gdx.gl.glClearColor(0,0,0,0);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.draw();
stage.act();
}
@Override
public void dispose() {
stage.dispose();
skin.dispose();
}
}
以下是输出:
一种更简单的解决方案是只对换行符使用\n,而不是
Label label=new Label("MULTILINE IN LIBGDX GAME DEVELOPMENT",skin);
你就这么做吧
Label label=new Label("MULTILINE\nIN\nLIBGDX\nGAME\nDEVELOPMENT",skin);
标签将是:
MULTILINE
IN
LIBGDX
GAME
DEVELOPMENT