如何获取设备屏幕横竖屏状态
2024-12-18 16:00:17
428次阅读
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关注
