我想使用 Libgdx 引擎创建游戏。它是默认创建的全屏游戏,没有通知栏。
我可以用通知栏创建游戏吗?
3 回答
由于我(尚未)被允许发表评论,因此我将给出答案。基本上,LiamJPeters 所说的一切都会有所帮助,除非您最近使用较新的 libgdx nightlies 之一从头开始设置项目,然后还会有一个在manifest中引用的“res/values/styles.xml”。
我必须在那里更改两个设置(除了 LiamJPeters 编写的所有内容)以使其最终显示通知栏和窗口标题:
<resources>
<style name="GdxTheme" parent="android:Theme">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowNoTitle">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowFullscreen">false</item>
</style>
</resources>
在 Android 启动器中:
public class MainActivity extends AndroidApplication {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.hideStatusBar = false;
initialize(new MainClass(), cfg);
}
}
这里重要的一行是cfg.hideStatusBar = false;
希望有帮助
编辑
好的,所以我对该主题进行了一些研究,结果证明这很容易。我查看了libgdx wiki 页面以添加 admob 广告。除了添加广告之外,请按照所有步骤操作!
下面是用于设置非全屏 android 应用的修改代码:
public class MainActivity extends AndroidApplication {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RelativeLayout layout = new RelativeLayout(this);
layout.addView(initializeForView(new MainClass(), false));
setContentView(layout);
}
}
您可以通过谷歌搜索“RelativeLayout layoutParams”轻松添加所需的所有布局参数。希望这可以帮助。请将问题标记为已回答。
我在这里遇到了困惑,无法在 Android Lollipop 上运行一段时间。我必须实际合并答案中提供的所有代码,以使我的应用程序显示状态栏。
所以对我来说最终的工作代码如下所示:
Java 部分 - 结合相对布局和 hideStatusBar 配置(感谢 LiamJPeters)
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.hideStatusBar = false;
RelativeLayout layout = new RelativeLayout(this);
layout.addView(initializeForView(new MyAndroidApp(), config));
setContentView(layout);
}
和 styles.xml 部分 - windowFullscreen 为假(感谢 Bernrd K.)
<resources>
<style name="GdxTheme" parent="android:Theme">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowFullscreen">false</item>
</style>
</resources>
注意:windowNoTitle 与状态栏本身无关。取决于你需要什么,但上面的 xml 只显示状态栏,没有标题。