有人知道如何在使用 libgdx
时全屏显示吗?同时,在 Nexus 等设备上,虚拟 Home 键按钮也不可见吗?
如果有人像我一样在寻找简单的解决方法,您可以使用以下方法
config.useImmersiveMode = true;
在4.4及以上版本上,可以通过对AndroidApplicationConfiguration
对象进行设置,在隐藏状态栏的同时隐藏软键盘。
更新:此代码行应放置在android/src/YOUR/PACKAGE/PATH/android/AndroidLauncher.java
文件中。
libgdx会默认通过AndroidApplicationConfiguration#hideStatusBar为您执行此操作。但是,您仍然可以设置为全屏模式。
在Android游戏项目的主活动类中:
public class MainActivity extends AndroidApplication {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
//cfg.hideStatusBar = true; //set to true by default
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
getWindow().getDecorView().setSystemUiVisibility(View.STATUS_BAR_VISIBLE);
getWindow().getDecorView().setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
}
initialize(new MainClass(), cfg);
}
}
setOnSystemUiVisibilityChangeListener
)监听系统UI可见性的变化,如果UI变得可见,则重新隐藏UI,或者在隐藏之前显示状态栏,就像我上面所做的那样。View.STATUS_BAR_HIDDEN
(API v11) 已更名为 View.SYSTEM_UI_FLAG_LOW_PROFILE
(API v14),可以将虚拟导航按钮转换为点。但是,两者都映射到相同的常量0x1。另外,一旦再次触摸屏幕,按钮将变得可见。View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
(API v14) 和 Build.VERSION_CODES.ICE_CREAM_SANDWICH
。尝试了很多方法,只有这段代码对我有效:
...
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = false;
requestWindowFeature(Window.FEATURE_NO_TITLE);
View decorView = getWindow().getDecorView();
decorView.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);
initialize(new Soldiers(), cfg);
这是MainActivity.java的一部分,可能也应该在onResume()
上执行。
onResume()
中设置System Ui Visibility。 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
android/src/YOUR/PACKAGE/PATH/android/AndroidLauncher.java
已添加到答案以提高可见性。 - Tomas D Celaya