1

我正在创建一个带有两个图像按钮的窗口(在我的 playN 游戏中使用 TriplePlay)。

现在我需要这些按钮上的动态文本。但是当我添加带有图像的按钮(setIcon)时,我无法同时在其上添加文本。请检查我现在使用的以下代码块。


Interface iface = new Interface(null);
pointer().setListener(iface.plistener);
Styles buttonStyles = Styles.none().add(Style.BACKGROUND.is(new NullBackground())).
    addSelected(Style.BACKGROUND.is(Background.solid(0xFFCCCCCC)));
Stylesheet rootSheet = Stylesheet.builder().add(Button.class, buttonStyles).create();
Root buttonroot = iface.createRoot(AxisLayout.horizontal().gap(150), rootSheet);
buttonroot.setSize(width_needed, height_needed);
buttonroot.addStyles(Styles.make(Style.BACKGROUND.is(new NullBackground())));
graphics().rootLayer().add(buttonroot.layer);
Button you = new Button().setIcon(buttonImage);
Button friend = new Button().setIcon(buttonImage);
buttonroot.add(you).add(friend);
buttonroot.layer.setTranslation(x_needed, y_needed);
Root nameroot = iface.createRoot(AxisLayout.horizontal().gap(300), rootSheet);
nameroot.setSize(width_needed, height_needed);
nameroot.addStyles(Styles.make(Style.BACKGROUND.is(new NullBackground())));
graphics().rootLayer().add(nameroot.layer);
name = new Label("YOU");// we need the dynamic string variable instead
friendName = new Label("FRIEND"); // we need the dynamic string variable instead
nameroot.add(name).add(friendName);
nameroot.layer.setTranslation(x_needed, y_needed);

在这里,我尝试创建一个根,然后向其添加带有图像的按钮,然后创建另一个根并在其上添加标签,以便它像图像按钮上的文本一样显示。但我知道这是一种不好的做法,并且由于它是动态文本,因此对齐方式不会根据需要进行。无论如何要添加一个带有图像和标签的按钮吗?

感谢期待

4

1 回答 1

2

创建带有文本和图标的按钮很简单:

Button button = new Button("Text").setIcon(iconImage);

然后,您可以随时更改按钮上的文本,如下所示:

button.text.update("New Text");

如果您想要一个带有背景图像且在背景上呈现文本的按钮,请执行以下操作:

Button button = new Button("Text").
  addStyles(Background.is(Background.image(bgImage)));

请注意,您需要最新的 TriplePlay 代码(来自 Github)才能使用 ImageBackground。最新的代码还支持 Flash 风格的“ scale9 ”背景:

Button button = new Button("Text").
  addStyles(Background.is(Background.scale9(bgImage)));
于 2012-03-30T15:29:04.313 回答