以正确的方式对齐图像中的标签文本-LibGdx
Aligning label text inside an image in a proper way-LibGdx
我想在方框图像中写分数。
首先我把盒子放在那个地方,然后我用这样的标签在上面添加了分数字符串。
private void drawScoreBoxes() {
scoreImage = new Image(scoreTexture);
stage.addActor(scoreImage);
scoreImage.setPosition(UiConstants.BOX_POS_X,UiConstants.BOX_POS_Y2);
}
private void drawScore() {
Label.LabelStyle scoreStyle = new Label.LabelStyle();// style
scoreStyle.font = game.font2;
scoreLabel2 = new Label(scoreController.getScoreString(), scoreStyle);// label
scoreLabel2.setPosition(scoreImage.getX()+scoreImage.getWidth()/2,scoreImage.getY());
}
分数字符串应该恰好在框的中间image.In这种情况下,当分数位数增加时,字符串对齐不正确。
如何才能始终居中对齐?
我找到了 getLabelAlign()、setAlignment(alignment) 等方法。
但是不知道怎么正确使用。
使用TextButton代替Image
+Label
TextButton
是一个包含 Label
的按钮,您可以将 Image
可绘制部分传递给显示为标签背景部分的按钮。
button = new TextButton("Button1", textButtonStyle);
stage.addActor(button);
A TextButton
采用要呈现的字符串和 ButtonStyle,在本例中为 TextButtonStyle
,它基本上是一个 class,其中包含有关按钮的所有信息(字体,未按下时可绘制渲染,按下时可绘制渲染等)。
您有两个选择:
1. 使用文本按钮:
Drawable scoreDrawable = new TextureRegionDrawable(new TextureRegion(scoreTexture));
TextButtonStyle textButtonStyle = new TextButtonStyle( scoreDrawable, scoreDrawable, scoreDrawable, font );
TextButton tb = new TextButton( scoreController.getScoreString() );
tb.setDisabled( true );
或 2. 设置标签边界并对齐文本:
LabelStyle labelStyle = new LabelStyle( font, Color.BLACK );
Label scoreLabel = new Label( scoreController.getScoreString(), labelStyle );
scoreLabel.setBounds( scoreImage.getX(), scoreImage.getY(), scoreImage.getWidth(), scoreImage.getHeight() );
scoreLabel.setAlignment( Align.center );
我想在方框图像中写分数。
首先我把盒子放在那个地方,然后我用这样的标签在上面添加了分数字符串。
private void drawScoreBoxes() {
scoreImage = new Image(scoreTexture);
stage.addActor(scoreImage);
scoreImage.setPosition(UiConstants.BOX_POS_X,UiConstants.BOX_POS_Y2);
}
private void drawScore() {
Label.LabelStyle scoreStyle = new Label.LabelStyle();// style
scoreStyle.font = game.font2;
scoreLabel2 = new Label(scoreController.getScoreString(), scoreStyle);// label
scoreLabel2.setPosition(scoreImage.getX()+scoreImage.getWidth()/2,scoreImage.getY());
}
分数字符串应该恰好在框的中间image.In这种情况下,当分数位数增加时,字符串对齐不正确。
如何才能始终居中对齐?
我找到了 getLabelAlign()、setAlignment(alignment) 等方法。 但是不知道怎么正确使用。
使用TextButton代替Image
+Label
TextButton
是一个包含 Label
的按钮,您可以将 Image
可绘制部分传递给显示为标签背景部分的按钮。
button = new TextButton("Button1", textButtonStyle);
stage.addActor(button);
A TextButton
采用要呈现的字符串和 ButtonStyle,在本例中为 TextButtonStyle
,它基本上是一个 class,其中包含有关按钮的所有信息(字体,未按下时可绘制渲染,按下时可绘制渲染等)。
您有两个选择: 1. 使用文本按钮:
Drawable scoreDrawable = new TextureRegionDrawable(new TextureRegion(scoreTexture));
TextButtonStyle textButtonStyle = new TextButtonStyle( scoreDrawable, scoreDrawable, scoreDrawable, font );
TextButton tb = new TextButton( scoreController.getScoreString() );
tb.setDisabled( true );
或 2. 设置标签边界并对齐文本:
LabelStyle labelStyle = new LabelStyle( font, Color.BLACK );
Label scoreLabel = new Label( scoreController.getScoreString(), labelStyle );
scoreLabel.setBounds( scoreImage.getX(), scoreImage.getY(), scoreImage.getWidth(), scoreImage.getHeight() );
scoreLabel.setAlignment( Align.center );