1. 程式人生 > >android隱藏虛擬導航欄-------cocos2dx 3.x

android隱藏虛擬導航欄-------cocos2dx 3.x

查到網上的說法 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);