Libgdx游戏中的通知栏

6

我想使用Libgdx引擎创建游戏。默认情况下,它会创建一个全屏游戏而没有通知栏。
那么我可以创建带有通知栏的游戏吗?

3个回答

7

由于我目前还没有发表评论的权限,所以我将其作为答案。基本上LiamJPeters所说的一切都有帮助,但是如果您最近使用了较新的libgdx夜间版本之一从头开始设置项目,则还会有一个"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>

只有这些配置对我有效,谢谢! - wryel

6
在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; 希望能帮到您。 编辑: 好的,我在这个主题上做了一些研究,发现它非常容易。我查看了添加admob广告的libgdx wiki页面。遵循所有步骤,除了添加广告!
以下是用于设置非全屏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"很容易地添加所有你想要的布局参数。希望这有所帮助。请将问题标记为已回答。

谢谢你的回答。HideStatusBar是为Android 4.x设计的...我能在安装有2.3或更低版本的设备上显示状态栏吗? - Alex.Zaiats

1
我在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更改为false(感谢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仅显示状态栏,没有标题。

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