如何获取设备屏幕横竖屏状态
2024-12-18 16:00:17
181次阅读
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关注
相关话题
- 如何锁定设备竖屏,使得窗口不随屏幕旋转
- 如何获取状态管理框架代理前的原始对象
- ArkTS获取设备信息及OpenID
- 如何实现应用的屏幕自动旋转
- 如何实现防截屏功能
- 如何完成挖孔屏的适配
- OpenHarmony 如何实现防截屏功能
- 如何调用系统拍照并获取图片
- OpenHarmony: 如何获取当前HAP的BundleName
- 如何在Page中获取WindowStage实例
- List控件加载的数据如何判断是否超过一屏
- 【HarmonyOS NEXT】使用 Navigation 对折叠屏设备页面进行分栏展示,优化 UI 交互
- 如何实现折叠屏折叠态不适配旋转,展示态适配旋转
- (八五)HarmonyOS Design 在智能穿戴设备中的实践:应对设计限制与优化小屏幕体验
- 获取链接文件信息