HarmonyOS 鸿蒙Next如何获取屏幕旋转角度

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next如何获取屏幕旋转角度

类似安卓得屏幕旋转监听。根据屏幕旋转返回当前屏幕方向

2 回复
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系统中,获取屏幕旋转角度的方法主要通过访问系统的传感器或者查询显示设置的状态来实现。以下是直接获取屏幕旋转角度的方法:

  1. 使用WindowManager API: HarmonyOS提供了WindowManager服务,可以查询当前窗口的显示方向。通过WindowManager的getOrientation方法,可以获取当前屏幕的方向(如0度、90度、180度、270度)。

    // 注意:此处为示例说明,实际代码应使用HarmonyOS特定API
    WindowManager windowManager = getWindowManager();
    int orientation = windowManager.getDefaultDisplay().getOrientation();
    

    在HarmonyOS中,应使用对应的API替代Java中的getWindowManagergetDefaultDisplay方法。

  2. 监听屏幕旋转事件: 通过监听系统广播或设置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

回到顶部