android隱藏虛擬導航欄-------cocos2dx 3.x
阿新 • • 發佈:2018-12-10
查到網上的說法 android 沉浸式狀態列,
百度百科。沉浸式就是要給使用者提供完全沉浸的體驗,使使用者有一種置身於虛擬世界之中的感覺。比如說現在大熱的VR就是主打的沉浸式體驗。
其實想實現的效果就是——————————–隱藏狀態列
一個Android應用程式的介面上其實是有很多系統元素的,觀察下圖:
可以看到,有狀態列、ActionBar、導航欄等。而打造沉浸式模式的使用者體驗,就是要將這些系統元素全部隱藏,只留下主體內容部分。
對應的在cocos2d-x-3.12已經實現了
具體實現引數是:
protected void hideVirtualButton() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 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 // hide nav bar | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); }
}
在cocos2dx 3.10中 則需要在自己的AppActivity類中
oncreate
onresume
onWindowFocusChanged
中呼叫
int nViewFlag = 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 // hide nav bar
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
**getGLSurfaceView().setSystemUiVisibility**(nViewFlag )
}
如果想設定導航欄透明色
getWindow().setNavigationBarColor(Color.TRANSPARENT);
getWindow().setStatusBarColor(Color.TRANSPARENT);