cocos2d Android 适配华为导航栏

原创 2016年08月30日 10:31:54

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

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

@SuppressLint("NewApi")
public void hideNavigationBar() {
    int uiFlags = 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


    if( android.os.Build.VERSION.SDK_INT >= 19 ){ 
        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
    } else {
        uiFlags |= View.SYSTEM_UI_FLAG_LOW_PROFILE;
    }

    getWindow().getDecorView().setSystemUiVisibility(uiFlags);
}

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

protected void onCreate(Bundle savedInstanceState){
    hideNavigationBar();
    super.onCreate(savedInstanceState);
}

@Override
public void onResume() {
    Log.e(TAG, "onResume called");
    hideNavigationBar();
    super.onResume();
    LCMSDK.resume(this);
}

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus); 
    if( hasFocus ) {
        hideNavigationBar();
    }
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

Cocos2D 如何做 Android 适配

我们知道Cocos2D 是跨平台的 ( Android, iOS, BlackBerry ), 因此它必须把自己适配到不同平台上, 这些适配包括: 1) 屏幕显示 2) 用户输入 3) 进程主循...
  • span76
  • span76
  • 2013年04月21日 18:08
  • 3135

Cocos2d-JS屏幕适配

有终端开发经验的读者应该对屏幕适配问题深感痛恶,因为这个世界实在有太多类型的手机和平板了,各种尺寸首先,我们来认识三个术语: WinSize:设计尺寸,我们设计游戏时预定的目标尺寸,可以在工程中的ma...

cocos2d 3.0 屏幕适配

原文: http://blog.csdn.net/fox64194167/article/details/38676763 1.解决方案 先直接给出解决方案,再慢慢解释,当然这个解决方案也...

【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏

李华明Himi 原创,转载务必在明显处注明:【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2d/463.html     最近书已经进...

cocos2d-js 3.0 屏幕适配方案 分辨率适应

cocos2d-js 3.0 屏幕适配方案 分辨率适应 首先介绍一个api和相应的参数: cc.view.setDesignResolutionSize(1024, 768, cc.R...

最完整的让cocos2d游戏适配IPAD Retina的教程

暂时在网上还没找到一个让cocos2d开发的IPhone游戏快速地适应IPAD2 Retina模式的教程。确实,如果在项目开展初期没有规划好“一个app,多处适配”的话,到了开发末期才来做分辨率适配是...
  • a287971
  • a287971
  • 2012年07月08日 07:25
  • 621

最完整的让cocos2d游戏适配IPAD Retina的教程

暂时在网上还没找到一个让cocos2d开发的IPhone游戏快速地适应IPAD2 Retina模式的教程。确实,如果在项目开展初期没有规划好“一个app,多处适配”的话,到了开发末期才来做分辨率适配是...

cocos2d-js 系列[1] 屏幕的适配

屏幕的适配 与Cocos2d-js第一次亲密的接触!

cocos2d-js 3.0 屏幕适配方案 分辨率适应

首先介绍一个api和相应的参数: cc.view.setDesignResolutionSize(1024, 768, cc.ResolutionPolicy.FIXED_WIDTH); ...

cocos2D:屏幕适配

两分钟让你明白cocos2dx的屏幕适配策略 闲来无事,整理了一下cocos2dx的屏幕适配策略,本文适用于想快速理解cocos2dx适配的开发者。 我们先假设:以854 * 480 的屏...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cocos2d Android 适配华为导航栏
举报原因:
原因补充:

(最多只允许输入30个字)