笔者所使用的方案经历了正式的线上项目使用,请放心食用
假设项目的设计分辨率为1920x1080
一、全平台通用逻辑
无论是Android、IOS还是h5,进行横竖屏切换,都需要执行下面对应代码,
而h5执行之后,就能完美适配横竖屏切换了。
Andriod、IOS 还需要一些其他的处理。
首先// 获取屏幕物理分辨率
let frameSize = cc.view.getFrameSize()
竖屏cc.view.setOrientation(cc.macro.ORIENTATION_PORTRAIT)
if (frameSize.width > frameSize.height)
cc.view.setFrameSize(frameSize.height, frameSize.width)
// this.canvas 为当前fire场景的画板
this.canvas.designResolution = cc.size(1080, 1920)
横屏cc.view.setOrientation(cc.macro.ORIENTATION_LANDSCAPE)
if (frameSize.height > frameSize.width)
cc.view.setFrameSize(frameSize.height, frameSize.width)
this.canvas.designResolution = cc.size(1920, 1080)
二、Android原生处理
竖屏// instance 为AppActivity,我的做法是做了对象 public static AppActivity instance,然后在 onCreate 赋值
instance.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SEN