如何获取设备屏幕横竖屏状态
2024-12-18 16:00:17
339次阅读
0个评论
方法一:通过媒体查询
import { mediaquery } from '@kit.ArkUI'; 
 
let listener = mediaquery.matchMediaSync('(orientation: landscape)'); //监听横屏事件 
function onPortrait(mediaQueryResult: mediaquery.MediaQueryResult) { 
  console.info('mediaQueryResult.matches:' + mediaQueryResult.matches) 
  if (mediaQueryResult.matches) { 
    // do something here 
  } else { 
    // do something here 
  } 
} 
listener.on('change', onPortrait) // 注册回调 
listener.off('change', onPortrait) // 取消注册回调 
 
@Entry 
@Component 
struct Index { 
  build() { 
    Column() { 
      Column() { 
        Text('test') 
      } 
      .width('100%') 
    } 
    .height('100%') 
    .width('100%') 
    .justifyContent(FlexAlign.End) 
  } 
}
方法二:
import { display, window } from '@kit.ArkUI'; 
 
@Entry 
@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)); 
            } 
          } 
        }) 
      }) 
  }}
00
- 1回答
- 0粉丝
- 0关注
相关话题
- 如何锁定设备竖屏,使得窗口不随屏幕旋转
- 【HarmonyOS 5】鸿蒙应用代码控制横竖屏切换,自动切换横竖屏,监听横竖屏以及注意事项
- 如何获取状态管理框架代理前的原始对象
- ArkTS获取设备信息及OpenID
- 4.1release如何旋转屏幕
- 如何实现防截屏功能
- 如何实现应用的屏幕自动旋转
- 如何完成挖孔屏的适配
- OpenHarmony 如何实现防截屏功能
- 【HarmonyOS Next】鸿蒙应用折叠屏设备适配方案
- 【HarmonyOS NEXT】鸿蒙获取手势触摸点的屏幕全局坐标
- 如何调用系统拍照并获取图片
- OpenHarmony: 如何获取当前HAP的BundleName
- 如何在Page中获取WindowStage实例
- (四三)智能穿戴设备应用开发:小屏幕优化与开发注意事项
