# @ohos.animation.windowAnimationManager (窗å£åŠ¨ç”»ç®¡ç†)(系统接å£) 窗å£åŠ¨ç”»ç®¡ç†å™¨ï¼Œå¯ä»¥ç›‘å¬åº”用å¯åŠ¨é€€å‡ºæ—¶åº”用的动画窗å£ï¼Œæä¾›å¯åŠ¨é€€å‡ºè¿‡ç¨‹ä¸æŽ§ä»¶åŠ¨ç”»å’Œåº”用窗å£è”动动画能力。 > **说明:** > > - 该组件从API version 9开始支æŒã€‚åŽç»ç‰ˆæœ¬å¦‚æœ‰æ–°å¢žå†…å®¹ï¼Œåˆ™é‡‡ç”¨ä¸Šè§’æ ‡å•ç‹¬æ ‡è®°è¯¥å†…容的起始版本。 > > - 本模å—接å£ä¸ºç³»ç»ŸæŽ¥å£ã€‚ ## å¯¼å…¥æ¨¡å— ```ts import { windowAnimationManager } from '@kit.ArkUI'; ``` ## windowAnimationManager.setController setController(controller: WindowAnimationController): void 设置窗å£åŠ¨ç”»æŽ§åˆ¶å™¨ã€‚窗å£åŠ¨ç”»æŽ§åˆ¶å™¨çš„说明请å‚考[WindowAnimationController](#windowanimationcontroller)。 在使用windowAnimationManager的其他接å£å‰ï¼Œéœ€è¦é¢„先调用本接å£è®¾ç½®çª—å£åŠ¨ç”»æŽ§åˆ¶å™¨ã€‚ **系统能力:** SystemCapability.WindowManager.WindowManager.Core **å‚数:** | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | controller | [WindowAnimationController](#windowanimationcontroller) | 是 | 窗å£åŠ¨ç”»çš„控制器。| **示例:** ```ts let controller: windowAnimationManager.WindowAnimationController = { onStartAppFromLauncher(startingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onStartAppFromLauncher, the startingWindowTarget is: ' + startingWindowTarget); finishCallback.onAnimationFinish(); }, onStartAppFromRecent(startingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onStartAppFromRecent, the startingWindowTarget is: ' + startingWindowTarget); finishCallback.onAnimationFinish(); }, onStartAppFromOther(startingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onStartAppFromOther, the startingWindowTarget is: ' + startingWindowTarget); finishCallback.onAnimationFinish(); }, onAppTransition(fromWindowTarget: windowAnimationManager.WindowAnimationTarget, toWindowTarget: WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onAppTransition, the fromWindowTarget is: ' + fromWindowTarget); console.log('onAppTransition, the toWindowTarget is: ' + toWindowTarget); finishCallback.onAnimationFinish(); }, onMinimizeWindow(minimizingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onMinimizeWindow, the minimizingWindowTarget is: ' + minimizingWindowTarget); finishCallback.onAnimationFinish(); }, onCloseWindow(closingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onCloseWindow, the closingWindowTarget is: ' + closingWindowTarget); finishCallback.onAnimationFinish(); }, onScreenUnlock(finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onScreenUnlock called'); finishCallback.onAnimationFinish(); }, onWindowAnimationTargetsUpdate(fullScreenWindowTarget: windowAnimationManager.WindowAnimationTarget, floatingWindowTargets: Array<windowAnimationManager.WindowAnimationTarget>): void { console.log('onWindowAnimationTargetsUpdate, the fullScreenWindowTarget is: ' + fullScreenWindowTarget); console.log('onWindowAnimationTargetsUpdate, the floatingWindowTargets are: ' + floatingWindowTargets); } } windowAnimationManager.setController(controller); ``` ## windowAnimationManager.minimizeWindowWithAnimation minimizeWindowWithAnimation(windowTarget: WindowAnimationTarget, callback: AsyncCallback<WindowAnimationFinishedCallback>): void 最å°åŒ–åŠ¨ç”»ç›®æ ‡çª—å£ï¼Œå¹¶è¿”回动画完æˆçš„回调。使用callback异æ¥å›žè°ƒ **系统能力:** SystemCapability.WindowManager.WindowManager.Core **å‚数:** | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | windowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | åŠ¨ç”»ç›®æ ‡çª—å£ã€‚| | callback | AsyncCallback<[WindowAnimationFinishedCallback](#windowanimationfinishedcallback)> | 是 | 回调函数。当最å°åŒ–åŠ¨ç”»ç›®æ ‡çª—å£æˆåŠŸï¼Œerr为undefined,data为获å–到的WindowAnimationFinishedCallbackï¼›å¦åˆ™è¿”回err.code为-1,data为undefined。| **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let target: windowAnimationManager.WindowAnimationTarget | null = null; let controller: windowAnimationManager.WindowAnimationController = { onStartAppFromLauncher(startingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onStartAppFromLauncher, the startingWindowTarget is: ' + startingWindowTarget); target = startingWindowTarget; finishCallback.onAnimationFinish(); }, onStartAppFromRecent(startingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onStartAppFromRecent, the startingWindowTarget is: ' + startingWindowTarget); target = startingWindowTarget; finishCallback.onAnimationFinish(); }, onStartAppFromOther(startingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onStartAppFromOther, the startingWindowTarget is: ' + startingWindowTarget); target = startingWindowTarget; finishCallback.onAnimationFinish(); }, onAppTransition(fromWindowTarget: windowAnimationManager.WindowAnimationTarget, toWindowTarget: WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onAppTransition, the fromWindowTarget is: ' + fromWindowTarget); console.log('onAppTransition, the toWindowTarget is: ' + toWindowTarget); target = toWindowTarget; finishCallback.onAnimationFinish(); }, onMinimizeWindow(minimizingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onMinimizeWindow, the minimizingWindowTarget is: ' + minimizingWindowTarget); target = minimizingWindowTarget; finishCallback.onAnimationFinish(); }, onCloseWindow(closingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onCloseWindow, the closingWindowTarget is: ' + closingWindowTarget); target = closingWindowTarget; finishCallback.onAnimationFinish(); }, onScreenUnlock(finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onScreenUnlock called'); finishCallback.onAnimationFinish(); }, onWindowAnimationTargetsUpdate(fullScreenWindowTarget: windowAnimationManager.WindowAnimationTarget, floatingWindowTargets: Array<windowAnimationManager.WindowAnimationTarget>): void { console.log('onWindowAnimationTargetsUpdate, the fullScreenWindowTarget is: ' + fullScreenWindowTarget); console.log('onWindowAnimationTargetsUpdate, the floatingWindowTargets are: ' + floatingWindowTargets); target = fullScreenWindowTarget; } } windowAnimationManager.setController(controller); let finishedCallback: windowAnimationManager.WindowAnimationFinishedCallback; windowAnimationManager.minimizeWindowWithAnimation(target, (err: BusinessError, data: windowAnimationManager.WindowAnimationFinishedCallback) => { if (err) { console.error('Failed to minimize the window target. Cause: ' + JSON.stringify(err)); return; } finishedCallback = data; // 在收到回调åŽï¼Œéœ€è¦å¼€å§‹è¿›è¡Œçª—å£åŠ¨ç”»ï¼Œåœ¨çª—å£åŠ¨ç”»ç»“æŸåŽï¼Œè°ƒç”¨onAnimationFinish回调 finishedCallback.onAnimationFinish(); }); ``` ## windowAnimationManager.minimizeWindowWithAnimation minimizeWindowWithAnimation(windowTarget: WindowAnimationTarget): Promise<WindowAnimationFinishedCallback> 最å°åŒ–åŠ¨ç”»ç›®æ ‡çª—å£ï¼Œå¹¶è¿”回动画完æˆçš„回调。使用Promise异æ¥å›žè°ƒã€‚ **系统能力:** SystemCapability.WindowManager.WindowManager.Core **å‚数:** | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------- | -------- | -------- | -------- | | windowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | åŠ¨ç”»ç›®æ ‡çª—å£ã€‚| **返回值:** | 类型 | 说明 | | -------------------------------- | --------------------------------------- | | Promise<[WindowAnimationFinishedCallback](#windowanimationfinishedcallback)> | Promise对象,返回动画完æˆçš„回调。 | **示例:** ```ts import { BusinessError } from '@kit.BasicServicesKit'; let target: windowAnimationManager.WindowAnimationTarget | null = null; let controller: windowAnimationManager.WindowAnimationController = { onStartAppFromLauncher(startingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onStartAppFromLauncher, the startingWindowTarget is: ' + startingWindowTarget); finishCallback.onAnimationFinish(); }, onStartAppFromRecent(startingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onStartAppFromRecent, the startingWindowTarget is: ' + startingWindowTarget); finishCallback.onAnimationFinish(); }, onStartAppFromOther(startingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onStartAppFromOther, the startingWindowTarget is: ' + startingWindowTarget); finishCallback.onAnimationFinish(); }, onAppTransition(fromWindowTarget: windowAnimationManager.WindowAnimationTarget, toWindowTarget: WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onAppTransition, the fromWindowTarget is: ' + fromWindowTarget); console.log('onAppTransition, the toWindowTarget is: ' + toWindowTarget); finishCallback.onAnimationFinish(); }, onMinimizeWindow(minimizingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onMinimizeWindow, the minimizingWindowTarget is: ' + minimizingWindowTarget); finishCallback.onAnimationFinish(); }, onCloseWindow(closingWindowTarget: windowAnimationManager.WindowAnimationTarget, finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onCloseWindow, the closingWindowTarget is: ' + closingWindowTarget); finishCallback.onAnimationFinish(); }, onScreenUnlock(finishCallback: windowAnimationManager.WindowAnimationFinishedCallback): void { console.log('onScreenUnlock called'); finishCallback.onAnimationFinish(); }, onWindowAnimationTargetsUpdate(fullScreenWindowTarget: windowAnimationManager.WindowAnimationTarget, floatingWindowTargets: Array<windowAnimationManager.WindowAnimationTarget>): void { console.log('onWindowAnimationTargetsUpdate, the fullScreenWindowTarget is: ' + fullScreenWindowTarget); console.log('onWindowAnimationTargetsUpdate, the floatingWindowTargets are: ' + floatingWindowTargets); } } windowAnimationManager.setController(controller); let promise: Promise<windowAnimationManager.WindowAnimationFinishedCallback> = windowAnimationManager.minimizeWindowWithAnimation(target); promise.then((data: windowAnimationManager.WindowAnimationFinishedCallback) => { data.onAnimationFinish(); }).catch((err: BusinessError)=>{ console.error('Failed to minimize the window target. Cause: ' + JSON.stringify(err)); return; }); ``` ## WindowAnimationController 窗å£åŠ¨ç”»æŽ§åˆ¶å™¨ã€‚在创建一个WindowAnimationController对象时,需è¦å®žçŽ°å…¶ä¸çš„所有回调函数。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core ### onStartAppFromLauncher onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void 从桌é¢å¯åŠ¨åº”用时的回调。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------------------- | ------------------------------------------------------------ | ---- | ------------------ | | startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | åŠ¨ç”»ç›®æ ‡çª—å£ã€‚ | | finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完æˆåŽçš„回调。 | **示例:** 请å‚考[windowAnimationManager.setController](#windowanimationmanagersetcontroller)的示例代ç 。 ### onStartAppFromRecent onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget,finishCallback:WindowAnimationFinishedCallback): void 从最近任务列表å¯åŠ¨åº”用时的回调。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------------------- | ------------------------------------------------------------ | ---- | ------------------ | | startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | åŠ¨ç”»ç›®æ ‡çª—å£ã€‚ | | finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完æˆåŽçš„回调。 | **示例:** 请å‚考[windowAnimationManager.setController](#windowanimationmanagersetcontroller)的示例代ç 。 ### onStartAppFromOther onStartAppFromOther(startingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void 从除了桌é¢å’Œæœ€è¿‘任务列表以外其他地方å¯åŠ¨åº”用时的回调。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------------------- | ------------------------------------------------------------ | ---- | ------------------ | | startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | åŠ¨ç”»ç›®æ ‡çª—å£ã€‚ | | finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完æˆåŽçš„回调。 | **示例:** 请å‚考[windowAnimationManager.setController](#windowanimationmanagersetcontroller)的示例代ç 。 ### onAppTransition onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void 应用转场时的回调。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------------------- | ------------------------------- | ---- | ---------------- | | fromWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 转场å‰çš„动画窗å£ã€‚ | | toWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | 转场åŽçš„动画窗å£ã€‚ | | finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完æˆåŽçš„回调。 | **示例:** 请å‚考[windowAnimationManager.setController](#windowanimationmanagersetcontroller)的示例代ç 。 ### onMinimizeWindow onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void 最å°åŒ–窗å£æ—¶çš„回调。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------------------- | ------------------------------- | ---- | ---------------- | | minimizingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | åŠ¨ç”»ç›®æ ‡çª—å£ã€‚ | | finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完æˆåŽçš„回调。 | **示例:** 请å‚考[windowAnimationManager.setController](#windowanimationmanagersetcontroller)的示例代ç 。 ### onCloseWindow onCloseWindow(closingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void å…³é—窗å£æ—¶çš„回调。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------------------- | ------------------------------- | ---- | ---------------- | | closingWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | åŠ¨ç”»ç›®æ ‡çª—å£ã€‚ | | finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完æˆåŽçš„回调。 | **示例:** 请å‚考[windowAnimationManager.setController](#windowanimationmanagersetcontroller)的示例代ç 。 ### onScreenUnlock onScreenUnlock(finishCallback: [WindowAnimationFinishedCallback](#windowanimationfinishedcallback)): void å±å¹•è§£é”时的回调。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------------- | ------------------------------------------------------------ | ---- | ------------------ | | finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是 | 动画完æˆåŽçš„回调。 | **示例:** 请å‚考[windowAnimationManager.setController](#windowanimationmanagersetcontroller)的示例代ç 。 ### onWindowAnimationTargetsUpdate onWindowAnimationTargetsUpdate(fullScreenWindowTarget: WindowAnimationTarget, floatingWindowTargets: Array<WindowAnimationTarget>): void åŠ¨ç”»ç›®æ ‡çª—å£æ›´æ–°æ—¶çš„回调 **系统能力:** SystemCapability.WindowManager.WindowManager.Core | å‚æ•°å | 类型 | å¿…å¡« | 说明 | | -------------------- | ------------------------------- | ---- | ---------------- | | fullScreenWindowTarget | [WindowAnimationTarget](#windowanimationtarget) | 是 | å…¨å±çŠ¶æ€çš„åŠ¨ç”»ç›®æ ‡çª—å£ã€‚| | floatingWindowTargets| Array<[WindowAnimationTarget](#windowanimationtarget)> | 是 | 悬浮状æ€çš„åŠ¨ç”»ç›®æ ‡çª—å£ã€‚ | **示例:** 请å‚考[windowAnimationManager.setController](#windowanimationmanagersetcontroller)的示例代ç 。 ## WindowAnimationFinishedCallback 动画完æˆåŽçš„回调。 ### onAnimationFinish onAnimationFinish():void 结æŸæœ¬æ¬¡åŠ¨ç”»ã€‚ **系统能力:** SystemCapability.WindowManager.WindowManager.Core **示例:** 请å‚考[windowAnimationManager.setController](#windowanimationmanagersetcontroller)的示例代ç 。 ## WindowAnimationTarget åŠ¨ç”»ç›®æ ‡çª—å£ï¼Œç”¨æ¥å®žçŽ°åŠ¨ç”»ã€‚ **系统能力:** SystemCapability.WindowManager.WindowManager.Core | å称 | 类型 | å¿…å¡« | 说明 | | ------- | ------ | ------ | ----------------------- | | bundleName | string | 是 |åŠ¨ç”»ç›®æ ‡çª—å£æ‰€å¯¹åº”的包å。 | | abilityName | string | 是 |åŠ¨ç”»ç›®æ ‡çª—å£æ‰€å¯¹åº”çš„Abilityå称。 | | windowBounds | [RRect](#rrect) | 是 |åŠ¨ç”»ç›®æ ‡çª—å£æ‰€å¯¹åº”的实际大å°ã€‚ | | missionId | number | 是 |任务ID,多任务ä¸ç”¨äºŽä¸Žability进行匹é…。| ## RRect 圆角矩形。 **系统能力:** SystemCapability.WindowManager.WindowManager.Core | å称 | 类型 | å¿…å¡« | 说明 | | ------- | ------ | ------|----------------------- | | left | number | 是 |åŠ¨ç”»ç›®æ ‡çª—å£å·¦ä¸Šè§’相对于å±å¹•çš„横åæ ‡ã€‚ | | top | number | 是 |åŠ¨ç”»ç›®æ ‡çª—å£å·¦ä¸Šè§’相对于å±å¹•çš„纵åæ ‡ã€‚ | | width | number | 是 |åŠ¨ç”»ç›®æ ‡çª—å£çš„宽度大å°ã€‚ | | height | number | 是 |åŠ¨ç”»ç›®æ ‡çª—å£çš„高度大å°ã€‚ | | radius | number | 是 |åŠ¨ç”»ç›®æ ‡çª—å£çš„圆角大å°ã€‚ |