cocos2d Android 适配华为导航栏

前端之家收集整理的这篇文章主要介绍了cocos2d Android 适配华为导航栏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

华为手机有底部安卓三个按钮的导航栏,可以收起来,如果不进行处理,导航栏收起来后会导致游戏不全屏显示,因为在进入游戏的时候cocos计算屏幕分辨率(不含导航栏),后续不会重复计算

@R_301_463@案是在游戏启动的时候强制隐藏底部导航栏,让游戏强制填满整个屏幕,或者游戏从后台切进来后也隐藏导航栏

  1. @SuppressLint("NewApi")
  2. public void hideNavigationBar() {
  3. int uiFlags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
  4. | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
  5. | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
  6. | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
  7. | View.SYSTEM_UI_FLAG_FULLSCREEN; // hide status bar
  8.  
  9.  
  10. if( android.os.Build.VERSION.SDK_INT >= 19 ){
  11. uiFlags |= 0x00001000; //SYSTEM_UI_FLAG_IMMERSIVE_STICKY: hide navigation bars - compatibility: building API level is lower thatn 19,use magic number directly for higher API target level
  12. } else {
  13. uiFlags |= View.SYSTEM_UI_FLAG_LOW_PROFILE;
  14. }
  15.  
  16. getWindow().getDecorView().setsystemUIVisibility(uiFlags);
  17. }

需要在onCreate onResume 和onWindowFocusChanged 中调用上面方法

  1. protected void onCreate(Bundle savedInstanceState){
  2. hideNavigationBar();
  3. super.onCreate(savedInstanceState);
  4. }

  1. @Override
  2. public void onResume() {
  3. Log.e(TAG,"onResume called");
  4. hideNavigationBar();
  5. super.onResume();
  6. LCMSDK.resume(this);
  7. }

  1. @Override
  2. public void onWindowFocusChanged(boolean hasFocus) {
  3. super.onWindowFocusChanged(hasFocus);
  4. if( hasFocus ) {
  5. hideNavigationBar();
  6. }
  7. }

猜你在找的Cocos2d-x相关文章