如何使用libgdx创建Android UI元素

3

我正在使用libgdx开发一款Android游戏,想知道如何创建Android UI元素,比如EditText和Button。我知道这只能在Android上运行,所以我会像这样做:

if (Gdx.app.getType() == Application.ApplicationType.Android ) {
...
}

我发现scene2d.ui可能会有帮助,但我不使用scene2d(演员、舞台等)并且不太熟悉它。而是使用类似于这样的Screen:
public class GameScreen implements Screen {
...
}

我曾在使用libgdx编写的游戏原型保卫中看到过这种可能性。
2个回答

2
所有与Android相关的代码必须存在于Android后端中。您不能在通用项目中使用特定于Android的代码。
所有当前的libGDX UI元素都是基于OpenGL的自定义元素(因此在libGDX支持的所有平台上都有一定的一致性)。没有包装Android UI原语的元素。对于像按钮、标签或列表这样的简单事物,我建议使用libGDX UI组件以实现可移植性。对于更复杂的元素,如文本输入或与平台交互(例如共享或其他),您可以使用标准的“定义接口”方法来调用特定于平台的代码。
具体而言,假设您想要弹出一个对话框,让用户输入他们的姓名。请定义:
public interface PlatformUI {
   public void showHighscoreNameEdit();
}

然后在您的Android项目中,使用Android原生语言实现这个接口。然后将这个对象的一个实例传递到共享代码的构造函数中。现在共享代码可以“调用”Android层。

在Android初始化代码中的示例:

AndroidUI androidUI = new AndroidUI(...);
initialize(new Game(androidUI));

在平台代码中可能会有这样的内容:

if (timeToShowEditBox) {
  androidUI.showHighscoreNameEdit();
}

正如@android开发人员所指出的那样,AdMobInLibgdx wiki页面介绍了使用Android特定的AdMob库来实现此功能,而在这种情况下非常相似。


1

在 Android 项目中只使用 Android UI。

他们有一个示例,展示如何在 AdMob 广告中实现它,这样你就可以在你的游戏中放置广告了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接