我正在制作一个简单的游戏,到目前为止,我一直在使用空白活动。现在我希望它覆盖整个屏幕,我是否需要使用FullScreen活动重新编码整个内容?我尝试在网上寻找一些东西,但我遇到的每件事都添加了这一点:
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
导致应用在设备上启动后立即崩溃。所以如果有人能告诉我我的错误,那就好了。
这是logcat输出的链接以及游戏代码
答案 0 :(得分:30)
尝试将此活动设置为全屏:
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
您可以将此代码放在onCreate()
方法
答案 1 :(得分:26)
您可以尝试以下代码。
style.xml:
<style name="AppTheme.NoTitle" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
的AndroidManifest.xml:
<activity
android:name=".FullScreenActivity"
android:theme="@style/AppTheme.NoTitle"
android:screenOrientation="portrait"
android:launchMode="singleTop">
</activity>
答案 2 :(得分:4)
以上答案均无效;他们遇到onResume()
方法的问题,最后显示软键。
正确的做法非常简单。在应该是全屏的Activity
中覆盖此方法:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
如果你想要&#34; Sticky Immersion&#34;。查看完整的文档here,并确定哪些更适合您的用例。
答案 3 :(得分:2)
你想要的是Imersive模式,适用于Android 4.4及以上
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
可以找到官方文档here
答案 4 :(得分:2)
在 AndroidManifest.xml 文件
中<activity
android:name=".Launch"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > <!-- This line is important -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
并且您的类应该扩展Activity而不是AppCompatActivity ...
答案 5 :(得分:0)
您只需转到清单文件并将android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
添加到您的
<activity />
或<application />
个标记。