-
Creator 版本:3.5.0
-
目标平台:android
3.5.0 旋转代码如下:
export function setScreenOrientationPortrait() {
if (sys.os === sys.OS.ANDROID) {
return jsb.reflection.callStaticMethod("com/cocos/game/AppActivity", "changeOrientation", "(I)V", 1);
}
}
export function setScreenOrientationPortrait() {
sdk.setScreenOrientationPortrait();
view.setDesignResolutionSize(global.applicaion.designHeight, global.applicaion.designWidth, ResolutionPolicy.FIXED_WIDTH);
view.setOrientation(macro.ORIENTATION_PORTRAIT);
}
Android 端代码
/**
* 设置屏幕方向
* @param orientationType 0 横屏;1 竖屏
*/
public static void changeOrientation(final int orientationType) {
Log.d(TAG, "change set orientation: " + orientationType);
final Activity app = SDKWrapper.shared().getActivity();
app.runOnUiThread(() -> app.setRequestedOrientation(orientationType));
}
在调用 setScreenOrientationPortrait
之后,屏幕是旋转成功了,但界面内的内容大约被放大了 1.78
倍,导致界面显示不完全。有参考 ccc 2.0
时代的写法 屏幕旋转实现方案,支持全平台 ,只是该方案在 3.0
版本失效了。
下面这些方法已失效
let frameSize = cc.view.getFrameSize()
cc.view.setFrameSize(frameSize.height,frameSize.width)
window.dispatchEvent(new cc.Event.EventCustom('resize', true))
请问各位大佬,应该如何设置,才能正确的显示 UI 内容
补充:
整个页面看起来被放大了 width / height
倍。如果是 1920*1080
的屏幕,就被放大了 1.7777
倍。