harmony-utils之DisplayUtil,屏幕相關(guān)工具類
harmony-utils 簡(jiǎn)介與說(shuō)明
harmony-utils 一款功能豐富且極易上手的HarmonyOS工具庫(kù),借助眾多實(shí)用工具類,致力于助力開(kāi)發(fā)者迅速構(gòu)建鴻蒙應(yīng)用。其封裝的工具涵蓋了APP、設(shè)備、屏幕、授權(quán)、通知、線程間通信、彈框、吐司、生物認(rèn)證、用戶首選項(xiàng)、拍照、相冊(cè)、掃碼、文件、日志,異常捕獲、字符、字符串、數(shù)字、集合、日期、隨機(jī)、base64、加密、解密、JSON等一系列的功能和操作,能夠滿足各種不同的開(kāi)發(fā)需求。
picker_utils 是harmony-utils拆分出來(lái)的一個(gè)子庫(kù),包含PickerUtil、PhotoHelper、ScanUtil。
下載安裝ohpm i @pura/harmony-utils
ohpm i @pura/picker_utils
//全局初始化方法,在UIAbility的onCreate方法中初始化 AppUtil.init()
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
AppUtil.init(this.context);
}
API方法與使用
getDefaultDisplaySync 獲取當(dāng)前默認(rèn)的display對(duì)象
let display = DisplayUtil.getDefaultDisplaySync();
let displayStr = JSON.stringify(display, null, 2);
getPrimaryDisplaySync 獲取主屏信息。除2in1之外的設(shè)備獲取的是設(shè)備自帶屏幕的Display對(duì)象;2in1設(shè)備外接屏幕時(shí)獲取的是當(dāng)前主屏幕的Display對(duì)象;2in1設(shè)備沒(méi)有外接屏幕時(shí)獲取的是自帶屏幕的Display對(duì)象。
let display = DisplayUtil.getPrimaryDisplaySync();
let displayStr = JSON.stringify(display, null, 2);
getAllDisplays 獲取當(dāng)前所有的display對(duì)象,使用Promise異步回調(diào)
let allDisplay = await DisplayUtil.getAllDisplays();
let displayStr = JSON.stringify(allDisplay, null, 2);
getWidth 獲取設(shè)備的屏幕寬度,單位為px
let width = DisplayUtil.getWidth();
ToastUtil.showToast(`當(dāng)前屏幕寬度為:${width}px`);
getHeight 獲取設(shè)備的屏幕高度,單位為px
let height = DisplayUtil.getHeight();
ToastUtil.showToast(`當(dāng)前屏幕寬高度:${height}px`);
getOrientation 獲取設(shè)備當(dāng)前顯示的方向
let orientation = DisplayUtil.getOrientation();
ToastUtil.showToast(`設(shè)備當(dāng)前顯示的方向:${orientation}`);
getDisplayState 獲取設(shè)備的狀態(tài)
let state = DisplayUtil.getDisplayState();
ToastUtil.showToast(`當(dāng)前設(shè)備的狀態(tài):${state}`);
getCutoutRect 獲取取挖孔屏、劉海屏、瀑布屏等不可用屏幕區(qū)域信息。建議應(yīng)用布局規(guī)避該區(qū)域
let rect = await DisplayUtil.getCutoutRect();
let cutoutInfoStr = JSON.stringify(rect, null, 2);
getCutoutHeight 獲取挖孔屏、劉海屏等不可用屏幕區(qū)域的高度,單位為px
let h = await DisplayUtil.getCutoutHeight();
ToastUtil.showToast(`挖孔屏、劉海屏等不可用屏幕區(qū)域的高度:${h}`);
isFoldable 檢查設(shè)備是否可折疊
let bl = DisplayUtil.isFoldable();
ToastUtil.showToast(`設(shè)備是否可折疊:${bl}`);
getFoldStatus 獲取可折疊設(shè)備的當(dāng)前折疊狀態(tài)
let status = DisplayUtil.getFoldStatus();
ToastUtil.showToast(`折疊設(shè)備的當(dāng)前折疊狀態(tài):${status}`);
getFoldDisplayMode 獲取可折疊設(shè)備的顯示模式
let mode = DisplayUtil.getFoldDisplayMode();
ToastUtil.showToast(`可折疊設(shè)備的顯示模式:${mode}`);
onFoldStatusChange 開(kāi)啟折疊設(shè)備折疊狀態(tài)變化的監(jiān)聽(tīng)
ToastUtil.showToast("開(kāi)啟折疊設(shè)備折疊狀態(tài)變化的監(jiān)聽(tīng)");
DisplayUtil.onFoldStatusChange((foldStatus: display.FoldStatus) = > {
let foldStatusStr = JSON.stringify(foldStatus, null, 2);
});
offFoldStatusChange 關(guān)閉折疊設(shè)備折疊狀態(tài)變化的監(jiān)聽(tīng)
ToastUtil.showToast("關(guān)閉折疊設(shè)備折疊狀態(tài)變化的監(jiān)聽(tīng)");
DisplayUtil.offFoldStatusChange();
onFoldAngleChange 開(kāi)啟折疊設(shè)備折疊角度變化的監(jiān)聽(tīng)。如果是雙折軸設(shè)備,則有兩個(gè)角度值;在充電口朝下的狀態(tài)下,從右到左分別是折軸一和折軸二。
ToastUtil.showToast("開(kāi)啟折疊設(shè)備折疊角度變化的監(jiān)聽(tīng)");
DisplayUtil.onFoldAngleChange((angles: Array< number >) = > {
LogUtil.info(`折疊角度變化的監(jiān)聽(tīng):${angles}`);
ToastUtil.showLong(`折疊角度變化的監(jiān)聽(tīng):${angles}`);
});
offFoldAngleChange 關(guān)閉折疊設(shè)備折疊角度變化的監(jiān)聽(tīng)
ToastUtil.showToast("關(guān)閉折疊設(shè)備折疊角度變化的監(jiān)聽(tīng)");
DisplayUtil.offFoldAngleChange();
isCaptured 檢查設(shè)備是否正在截屏、投屏、錄屏
let isCaptured = DisplayUtil.isCaptured();
ToastUtil.showToast(`設(shè)備是否正在截屏、投屏、錄屏:${isCaptured}`);
onCaptureStatusChange 開(kāi)啟屏幕截屏、投屏、錄屏狀態(tài)變化的監(jiān)聽(tīng)
ToastUtil.showToast("開(kāi)啟屏幕截屏、投屏、錄屏狀態(tài)變化的監(jiān)聽(tīng)");
DisplayUtil.onCaptureStatusChange((captureStatus: boolean) = > {
LogUtil.info(`屏幕截屏、投屏、錄屏狀態(tài):${captureStatus}`);
ToastUtil.showLong(`屏幕截屏、投屏、錄屏狀態(tài):${captureStatus}`);
});
offCaptureStatusChange 關(guān)閉屏幕截屏、投屏、錄屏狀態(tài)變化的監(jiān)聽(tīng)
ToastUtil.showToast("關(guān)閉屏幕截屏、投屏、錄屏狀態(tài)變化的監(jiān)聽(tīng)");
DisplayUtil.offCaptureStatusChange();
創(chuàng)作不易,請(qǐng)給童長(zhǎng)老點(diǎn)贊
審核編輯 黃宇
-
Harmony
+關(guān)注
關(guān)注
0文章
108瀏覽量
3009
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論