android 分屏适配

    问题描述 由于 android 可以开启分屏和华为的折叠屏导致游戏适配问题 问题分析 官方文档 android 7.0 开始支持 multi-windows android 8.0 支持画中画 多窗口模式不会更改 Activity 生命周期 适配标识 android:resizeableActivity 画中画支持 android:supportsPictureInPicture 配置更改 android:configChanges=“screenSize|smallestScreenSize|screenLayout|orientation” 判断方法 // Activity 提供以下方法来支持多窗口显示。 isInMultiWindowMode() // 调用该方法可确认 Activity 是否处于多窗口模式。 isInPictureInPictureMode() 生命周期 onMultiWindowModeChanged() onPictureInPictureModeChanged() Cocos2d-x 的 GlView 创建流程 Cocos2dxActivity -> Cocos2dxGLSurfaceView -> Cocos2dxRender -> GLView 当屏幕尺寸发生改变的 Cocos2dxGLSurfaceView -> Cocos2dxRender -> GLView 需要处理的问题 当窗口大小发生改变的时候不重新创建 OpenGLView 窗口大小改变的事件传递 java -> c++ -> lua 窗口大小改变后点击事件位置适配问题 窗口大小改变后游戏界面的适配 解决方案 在 AndroidManifest.xml 添加下列参数,让 OpenGLView 不因为调整大小而重建 // android:configChanges "smallestScreenSize|density|screenLayout" 传递尺寸更改信息 // cocos/client/platform/android/javaactivity-android.