屏幕
本模塊提供管理屏幕的一些基礎能力,包括獲取屏幕對象,監(jiān)聽屏幕變化,創(chuàng)建和銷毀虛擬屏幕等。
說明:
開發(fā)前請熟悉鴻蒙開發(fā)指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
] > 本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。本模塊接口為系統(tǒng)接口。
導入模塊
import screen from '@ohos.screen';
screen.getAllScreens
getAllScreens(callback: AsyncCallback>): void
獲取所有的屏幕,使用callback異步回調。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
callback | AsyncCallback> | 是 | 回調函數(shù)。返回當前獲取的屏幕對象集合。 |
示例:
var screenClass = null;
screen.getAllScreens((err, data) = > {
if (err.code) {
console.error('Failed to get all screens . Cause: ' + JSON.stringify(err));
return;
}
console.info('Succeeded in getting all screens . Data:' + JSON.stringify(data));
screenClass = data[0];
});
screen.getAllScreens
getAllScreens(): Promise>
獲取所有的屏幕,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
返回值:
類型 | 說明 |
---|---|
Promise> | Promise對象。返回當前創(chuàng)建的屏幕對象集合。 |
示例:
var screenClass = null;
let promise = screen.getAllScreens();
promise.then((data) = > {
screenClass = data[0];
console.log('Succeeded in getting all screens . Data:'+ JSON.stringify(data));
}).catch((err) = > {
console.log('Failed to get all screens . Cause: ' + JSON.stringify(err));
});
screen.on('connect' | 'disconnect' | 'change')
on(eventType: 'connect' | 'disconnect' | 'change', callback: Callback): void
開啟屏幕狀態(tài)變化的監(jiān)聽。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
eventType | string | 是 | 監(jiān)聽事件。 -eventType為"connect"表示屏幕連接事件。 -eventType為"disconnect"表示斷開屏幕連接事件。 -eventType為"change"表示屏幕狀態(tài)改變事件。 |
callback | Callback | 是 | 回調函數(shù)。返回屏幕的id。 |
示例:
var callback = (data) = > {
console.info('Register the callback for screen changes. Data: ' + JSON.stringify(data))
};
screen.on("connect", callback);
screen.off('connect' | 'disconnect' | 'change')
off(eventType: 'connect' | 'disconnect' | 'change', callback?: Callback): void
關閉屏幕狀態(tài)變化的監(jiān)聽。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
eventType | string | 是 | 監(jiān)聽事件。 -eventType為"connect"表示屏幕連接事件。 -eventType為"disconnect"表示斷開屏幕連接事件。 -eventType為"change"表示屏幕狀態(tài)改變事件。 |
callback | Callback | 否 | 回調函數(shù)。返回屏幕的id。 |
示例:
var callback = (data) = > {
console.info('Unegister the callback for screen changes. Data: ' + JSON.stringify(data))
};
screen.off("connect", callback);
screen.makeExpand
makeExpand(options:Array, callback: AsyncCallback): void
將屏幕設置為擴展模式,使用callback異步回調。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
options | Array<[ExpandOption]> | 是 | 設置擴展屏幕的參數(shù)集合。 |
callback | Callback | 是 | 回調函數(shù)。返回擴展屏幕的群組id。 |
示例:
var groupId = null;
screen.makeExpand([{screenId: 0, startX: 0, startY: 0}, {screenId: 1, startX: 1080, startY: 0}], (err, data) = > {
if (err.code) {
console.error('Failed to make screens as expand-screen. Cause:' + JSON.stringify(err));
return;
}
groupId = data;
console.info('Succeeded in making screens as expand-screen.Data:' + JSON.stringify(data));
});
screen.makeExpand
makeExpand(options:Array): Promise
將屏幕設置為擴展模式,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
options | Array<[ExpandOption]> | 是 | 設置擴展屏幕的參數(shù)集合。 |
返回值:
類型 | 說明 |
---|---|
Promise | Promise對象。返回擴展屏幕的群組id。 |
示例:
screen.makeExpand([{screenId: 0, startX: 0, startY: 0}, {screenId: 1, startX: 1080, startY: 0}]).then((data) = > {
console.info('Succeeded in making screens as expand-screen.Data:' + JSON.stringify(data));
}).catch((err) = > {
console.error('Failed to make screens as expand-screen. Cause:' + JSON.stringify(err));
});
screen.makeMirror
makeMirror(mainScreen:number, mirrorScreen:Array, callback: AsyncCallback): void
將屏幕設置為鏡像模式,使用callback異步回調。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
mainScreen | number | 是 | 主屏幕id。 |
mirrorScreen | Array | 是 | 鏡像屏幕id集合。 |
callback | AsyncCallback | 是 | 回調函數(shù)。返回鏡像屏幕的群組id。 |
示例:
var mainScreenId = 0;
var mirrorScreenIds = [1, 2, 3];
screen.makeMirror(mainScreenId, mirrorScreenIds, (err, data) = > {
if (err.code) {
console.error('Failed to make screens as mirror-screen.Cause:' + JSON.stringify(err));
return;
}
console.info('Succeeded in making screens as mirror-screen.Data:' + JSON.stringify(data));
});
screen.makeMirror
makeMirror(mainScreen:number, mirrorScreen:Array): Promise
將屏幕設置為鏡像模式,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
mainScreen | number | 是 | 主屏幕id。 |
mirrorScreen | Array | 是 | 鏡像屏幕id集合。 |
返回值:
類型 | 說明 |
---|---|
Promise | Promise對象。返回鏡像屏幕的群組id。 |
示例:
var mainScreenId = 0;
var mirrorScreenIds = [1, 2, 3];
screen.makeMirror(mainScreenId, mirrorScreenIds).then((data) = > {
console.info('Succeeded in making screens as mirror-screen.Data:' + JSON.stringify(data));
}).catch((err) = > {
console.error('Failed to make screens as mirror-screen.Cause:' + JSON.stringify(err));
});
ExpandOption
擴展屏幕的參數(shù)。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
名稱 | 參數(shù)類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
screenId | number | 是 | 是 | 屏幕的id。 |
startX | number | 是 | 是 | 屏幕的起始X軸坐標。 |
startY | number | 是 | 是 | 屏幕的起始Y軸坐標。 |
Screen
屏幕實例。
下列API示例中都需先使用[getAllScreens()]方法獲取到Screen實例,再通過此實例調用對應方法。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
名稱 | 參數(shù)類型 | 可讀 | 可寫 | 說明 |
---|---|---|---|---|
id | number | 是 | 否 | 屏幕的id。 |
parent | number | 是 | 否 | 屏幕所屬群組的id。 |
supportedModeInfo | Array<[ScreenModeInfo]> | 是 | 否 | 屏幕支持的模式集合。 |
activeModeIndex | number | 是 | 否 | 當前屏幕所處模式索引。 |
orientation | [Orientation] | 是 | 否 | 屏幕方向。 |
setOrientation
setOrientation(orientation: Orientation, callback: AsyncCallback): void
設置屏幕方向,使用callback異步回調。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
orientation | [Orientation] | 是 | 屏幕方向。 |
callback | AsyncCallback | 是 | 回調函數(shù)。當設置屏幕方向成功,err為undefined,否則為錯誤對象。 |
示例:
screenClass.setOrientation(screen.Orientation.VERTICAL, (err, data) = > {
if (err.code) {
console.error('Failed to setOrientation VERTICAL. Cause: ' + JSON.stringify(err));
return;
}
console.info('Succeeded in setting Orientation VERTICAL. data: ' + JSON.stringify(data));
})
setOrientation
setOrientation(orientation: Orientation): Promise
設置屏幕方向,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
orientation | [Orientation] | 是 | 屏幕方向。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
let promise = screenClass.setOrientation(screen.Orientation.VERTICAL);
promise.then((data) = > {
console.info('Succeeded in setting Orientation VERTICAL. Data: ' + JSON.stringify(data));
}).catch((err) = > {
console.error('Failed to set Orientation VERTICAL. Cause: ' + JSON.stringify(err));
})
setScreenActiveMode
setScreenActiveMode(modeIndex: number, callback: AsyncCallback): void
設置屏幕當前顯示模式,使用callback異步回調。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
modeIndex | number | 是 | 模式索引。 |
callback | AsyncCallback | 是 | 回調函數(shù)。當設置屏幕當前顯示模式成功,err為undefined,否則為錯誤對象。 |
示例:
var modeIndex = 0;
screenClass.setScreenActiveMode(modeIndex, (err, data) = > {
if (err.code) {
console.error('Failed to set ScreenActiveMode 0. Cause: ' + JSON.stringify(err));
return;
}
console.info('Succeeded in setting ScreenActiveMode 0. data: ' + JSON.stringify(data));
})
setScreenActiveMode
setScreenActiveMode(modeIndex: number): Promise
設置屏幕當前顯示模式,使用Promise異步回調。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
modeIndex | number | 是 | 模式索引。 |
返回值:
類型 | 說明 |
---|---|
Promise | 無返回結果的Promise對象。 |
示例:
var modeIndex = 0;
let promise = screenClass.setScreenActiveMode(modeIndex);
promise.then((data) = > {
console.info('Succeeded in setting ScreenActiveMode 0. Data: ' + JSON.stringify(data));
}).catch((err) = > {
console.error('Failed to set ScreenActiveMode 0. Cause: ' + JSON.stringify(err));
})
Orientation
屏幕方向枚舉。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
名稱 | 值 | 說明 |
---|---|---|
UNSPECIFIED | 0 | 表示未指定屏幕方向,由系統(tǒng)指定。 |
VERTICAL | 1 | 表示指定屏幕為垂直方向。 |
HORIZONTAL | 2 | 表示指定屏幕為水平方向。 |
REVERSE_VERTICAL | 3 | 表示指定屏幕為反向垂直方向。 |
REVERSE_HORIZONTAL | 4 | 表示指定屏幕為反向水平方向。 |
SENSOR | 5 | 表示屏幕方向跟隨傳感器方向。 |
SENSOR_VERTICAL | 6 | 表示屏幕方向垂直跟隨傳感器方向。 |
SENSOR_HORIZONTAL | 7 | 表示屏幕方向水平跟隨傳感器方向。 |
ScreenModeInfo
屏幕顯示模式信息。
系統(tǒng)能力: SystemCapability.WindowManager.WindowManager.Core
名稱 | 參數(shù)類型 | 可讀 | 可寫 | 說明HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
---|---|---|---|---|
id | number | 是 | 是 | 模式id,所支持的模式由具體設備分辨率和刷新率決定。 |
width | number | 是 | 是 | 屏幕的寬度。 |
height | number | 是 | 是 | 屏幕的高度。 |
refreshRate | number | 是 | 是 | 屏幕的刷新率。 |
審核編輯 黃宇
-
接口
+關注
關注
33文章
8575瀏覽量
151014 -
開發(fā)
+關注
關注
0文章
370瀏覽量
40836 -
鴻蒙
+關注
關注
57文章
2339瀏覽量
42805 -
OpenHarmony
+關注
關注
25文章
3713瀏覽量
16253
發(fā)布評論請先 登錄
相關推薦
評論