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 全面屏适配


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

查看所有标签

猜你喜欢:

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

打造Facebook

打造Facebook

王淮、祝文让 / 印刷工业出版社 / 2013-2-1 / 39.80元

《打造Facebook》新书发布会,王淮与读者面对面,活动链接:http://www.douban.com/event/18166913/ 这本书的书名——《打造Facebook:亲历Facebook爆发的5年》很嚣张,谁有资格可以说这句话呢,当然,扎克伯格最有资格,但他不会亲自来告诉你,至少从目前的情况来看,近几年都不大可能。而且,这不是一个人的公司。里面的每一人,尤其是工程师,既是公司文......一起来看看 《打造Facebook》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具