内容简介:有玩家反馈我们的游戏在 Mix 上面无法全屏显示, 上下会有黑边. 搜索了下, 网上还没有绍如何适配的相关文章, 这里介绍下我们是如何做的.我们可以在看看小米官方好的, 我们先按照官方的方法修改下
有玩家反馈我们的游戏在 Mix 上面无法全屏显示, 上下会有黑边. 搜索了下, 网上还没有绍如何适配的相关文章, 这里介绍下我们是如何做的.
我们可以在看看小米官方 对全面屏适配工作的介绍 :
这些变化也影响了手机软件的设计,最值得开发者关注的,是以下两点:
- 更大的屏幕高宽比
- 虚拟导航键
好的, 我们先按照官方的方法修改下 max_aspect
的值为 2
以上
<meta-dataandroid:name="android.max_aspect"android:value="2.1"/>
运行下, 发现顶部的黑条不见了, 但是底部的虚拟导航键还在. 我们接着看官方的文档:
然而这几种效果都不是我们想要的, 我们想要是隐藏 虚拟导航键
. 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); }
搞定. 看下最终的效果:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 小米崔宝秋:小米 AIoT 深度拥抱开源
- 小米8 SE和小米9 SE 开源 Android 9 Pie 内核代码
- 小米8 SE和小米9 SE 开源 Android 9 Pie 内核代码
- 开源改变了小米什么?
- 开源改变了小米什么?
- 来小米,一起搞大事!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。