HarmonyOS 鸿蒙Next如何获取屏幕旋转角度
HarmonyOS 鸿蒙Next如何获取屏幕旋转角度
import window from '@ohos.window';
import display from '@ohos.display'
[@Entry](/user/Entry)
[@Component](/user/Component)
struct windowRotation {
build(){
Text("Scroll Area")
.width("100%")
.height("100%")
.backgroundColor(0X330000FF)
.fontSize(16)
.textAlign(TextAlign.Center)
.onClick(()=>{
window.getLastWindow(getContext(this), (err, win) => {
let cutOutInfo = win.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM_GESTURE)
console.log(JSON.stringify(cutOutInfo))
if (window.Orientation.AUTO_ROTATION) {
let rotation: number = display.getDefaultDisplaySync().orientation // 获取当前屏幕的枚举值
console.log('' + rotation);
if (rotation == 0) {
console.log("CutOutInfo 竖屏数据: " + JSON.stringify(cutOutInfo));
} else if (rotation == 1) {
console.log("CutOutInfo 横屏数据: " + JSON.stringify(cutOutInfo));
} else if (rotation == 2) {
console.log("CutOutInfo 反向竖屏数据: " + JSON.stringify(cutOutInfo));
} else {
console.log("CutOutInfo 反向横屏数据: " + JSON.stringify(cutOutInfo));
}
}
})
})
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-sensor-V13
更多关于HarmonyOS 鸿蒙Next如何获取屏幕旋转角度的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS 鸿蒙Next系统中,获取屏幕旋转角度的方法主要通过访问系统的传感器或者查询显示设置的状态来实现。以下是直接获取屏幕旋转角度的方法:
-
使用WindowManager API: HarmonyOS提供了WindowManager服务,可以查询当前窗口的显示方向。通过WindowManager的
getOrientation
方法,可以获取当前屏幕的方向(如0度、90度、180度、270度)。// 注意:此处为示例说明,实际代码应使用HarmonyOS特定API WindowManager windowManager = getWindowManager(); int orientation = windowManager.getDefaultDisplay().getOrientation();
在HarmonyOS中,应使用对应的API替代Java中的
getWindowManager
和getDefaultDisplay
方法。 -
监听屏幕旋转事件: 通过监听系统广播或设置ConfigurationListener,可以在屏幕旋转时实时获取旋转角度。HarmonyOS提供了相应的监听机制,开发者可以注册监听器,在屏幕方向改变时获取新的角度。
// 注意:HarmonyOS中应使用其特有的监听机制 ConfigurationListener configurationListener = new ConfigurationListener() { @Override public void onConfigurationChanged(Configuration newConfig) { int orientation = newConfig.orientation; } };
在HarmonyOS中,开发者需使用相应的API进行注册和监听。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html