Quick-cocos2d-x 小米 Mix 全面屏适配

栏目: IOS · 发布时间: 6年前

内容简介:有玩家反馈我们的游戏在 Mix 上面无法全屏显示, 上下会有黑边. 搜索了下, 网上还没有绍如何适配的相关文章, 这里介绍下我们是如何做的.我们可以在看看小米官方好的, 我们先按照官方的方法修改下

有玩家反馈我们的游戏在 Mix 上面无法全屏显示, 上下会有黑边. 搜索了下, 网上还没有绍如何适配的相关文章, 这里介绍下我们是如何做的.

我们可以在看看小米官方 对全面屏适配工作的介绍 :

这些变化也影响了手机软件的设计,最值得开发者关注的,是以下两点:

  1. 更大的屏幕高宽比
  2. 虚拟导航键

好的, 我们先按照官方的方法修改下 max_aspect 的值为 2 以上

<meta-dataandroid:name="android.max_aspect"android:value="2.1"/>

运行下, 发现顶部的黑条不见了, 但是底部的虚拟导航键还在. 我们接着看官方的文档:

Quick-cocos2d-x 小米 Mix 全面屏适配

然而这几种效果都不是我们想要的, 我们想要是隐藏 虚拟导航键 . Google 一下, 很容易搜索到这段代码:

/**
    * 隐藏虚拟按键,并且全屏
    */
   protected void hideBottomUIMenu(){
       //隐藏虚拟按键,并且全屏
       if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api
           View v = this.getWindow().getDecorView();
           v.setSystemUiVisibility(View.GONE);
       } else if (Build.VERSION.SDK_INT >= 19) {
           //for new api versions.
           View decorView = getWindow().getDecorView();
           int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                           | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN;
           decorView.setSystemUiVisibility(uiOptions);
       }
   }

加上之后发现导航键真的没有了, 但是当你点击屏幕时, 它又出现了. 继续搜索发现了 这篇文章 , 按照文章中的提示进行修改你的 AppActivity :

    private Cocos2dxGLSurfaceView glSurfaceView;
    protected void onCreate(Bundle savedInstanceState, SplashEnum splash,long duration, boolean debug){
        ...
        View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
        int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN;
        decorView.setSystemUiVisibility(uiOptions);
        ...
    }
    @Override
    public Cocos2dxGLSurfaceView onCreateView(){
        glSurfaceView = super.onCreateView();
        this.hideSystemUI();
        return glSurfaceView;
    }
    @Override
    public void onWindowFocusChanged(boolean hasFocus)
    {
        super.onWindowFocusChanged(hasFocus);
        if (hasFocus)
        {
            this.hideSystemUI();
        }
    }
    private void hideSystemUI()
    {
        // Set the IMMERSIVE flag.
        // Set the content to appear under the system bars so that the content
        // doesn't resize when the system bars hide and show.
        glSurfaceView.setSystemUiVisibility(
                Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
                        | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                        | Cocos2dxGLSurfaceView.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    }

搞定. 看下最终的效果:

Quick-cocos2d-x 小米 Mix 全面屏适配


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Form Design

Web Form Design

Luke Wroblewski / Rosenfeld Media / 2008-5-2 / GBP 25.00

Forms make or break the most crucial online interactions: checkout, registration, and any task requiring information entry. In Web Form Design, Luke Wroblewski draws on original research, his consider......一起来看看 《Web Form Design》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具