@ohos.animation.windowAnimationManager (Window Animation Management)
The WindowAnimationManager module provides APIs to listen for application start/exit events and window minimization/maximization events and associate animations with these events.
NOTE
The APIs of this module are supported since API version 9. Updates will be marked with a superscript to indicate their earliest API version.
The APIs provided by this module are system APIs.
Modules to Import
import windowAnimationManager from '@ohos.animation.windowAnimationManager'
windowAnimationManager.setController
setController(controller: WindowAnimationController): void
Sets a window animation controller. For details about the controller, see WindowAnimationController.
Before using other APIs of windowAnimationManager, you must call this API to set a window animation controller.
System capability: SystemCapability.WindowManager.WindowManager.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
controller | WindowAnimationController | Yes | Window animation controller to set. |
Example
let controller = {
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
Minimizes the window that displays the animation. This API uses an asynchronous callback to return the result.
System capability: SystemCapability.WindowManager.WindowManager.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
windowTarget | WindowAnimationTarget | Yes | Target window to minimize. |
callback | AsyncCallback<WindowAnimationFinishedCallback> | Yes | Callback used to return the result. If the target window is minimized, err is undefined and data is the WindowAnimationFinishedCallback obtained; otherwise, err.code is -1 and data is undefined. |
Example
let target: WindowAnimationTarget = undefined;
let controller = {
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 = undefined;
windowAnimationManager.minimizeWindowWithAnimation(target, (err, data) => {
if (err) {
console.error('Failed to minimize the window target. Cause: ' + JSON.stringify(err));
return;
}
finishedCallback = data;
// After the callback is received, the window starts to play the animation. After the animation is finished, the **onAnimationFinish** callback is invoked.
finishedCallback.onAnimationFinish();
});
windowAnimationManager.minimizeWindowWithAnimation
minimizeWindowWithAnimation(windowTarget: WindowAnimationTarget): Promise<WindowAnimationFinishedCallback>
Minimizes the window that displays the animation. This API uses a promise to return the result.
System capability: SystemCapability.WindowManager.WindowManager.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
windowTarget | WindowAnimationTarget | Yes | Target window to display the animation. |
Return value
Type | Description |
---|---|
Promise<WindowAnimationFinishedCallback> | Promise used to return a call when the animation is finished. |
Example
let target: WindowAnimationTarget = undefined;
let controller = {
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 = windowAnimationManager.minimizeWindowWithAnimation(target);
promise.then((data) => {
data.onAnimationFinish();
}).catch((err)=>{
console.error('Failed to minimize the window target. Cause: ' + JSON.stringify(err));
return;
});
WindowAnimationController
Implements the window animation controller. When creating a WindowAnimationController object, you must implement all callbacks in the object.
System capability: SystemCapability.WindowManager.WindowManager.Core
onStartAppFromLauncher
onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void
Called when an application is started from the home screen.
System capability: SystemCapability.WindowManager.WindowManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
startingWindowTarget | WindowAnimationTarget | Yes | Target window to display the animation. |
finishCallback | WindowAnimationFinishedCallback | Yes | Callback invoked when the animation is finished. |
Example
For details, see the sample code under windowAnimationManager.setController.
onStartAppFromRecent
onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget,finishCallback:WindowAnimationFinishedCallback): void
Called when an application is started from the recent task list.
System capability: SystemCapability.WindowManager.WindowManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
startingWindowTarget | WindowAnimationTarget | Yes | Target window to display the animation. |
finishCallback | WindowAnimationFinishedCallback | Yes | Callback invoked when the animation is finished. |
Example
For details, see the sample code under windowAnimationManager.setController.
onStartAppFromOther
onStartAppFromOther(startingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void
Called when an application is started from a place other than the home screen and recent task list.
System capability: SystemCapability.WindowManager.WindowManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
startingWindowTarget | WindowAnimationTarget | Yes | Target window to display the animation. |
finishCallback | WindowAnimationFinishedCallback | Yes | Callback invoked when the animation is finished. |
Example
For details, see the sample code under windowAnimationManager.setController.
onAppTransition
onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void
Called during application transition.
System capability: SystemCapability.WindowManager.WindowManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
fromWindowTarget | WindowAnimationTarget | Yes | Window that displays the animation before the transition. |
toWindowTarget | WindowAnimationTarget | Yes | Window that displays the animation after the transition. |
finishCallback | WindowAnimationFinishedCallback | Yes | Callback invoked when the animation is finished. |
Example
For details, see the sample code under windowAnimationManager.setController.
onMinimizeWindow
onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void
Called when a window is minimized.
System capability: SystemCapability.WindowManager.WindowManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
minimizingWindowTarget | WindowAnimationTarget | Yes | Target window to display the animation. |
finishCallback | WindowAnimationFinishedCallback | Yes | Callback invoked when the animation is finished. |
Example
For details, see the sample code under windowAnimationManager.setController.
onCloseWindow
onCloseWindow(closingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void
Called when a window is closed.
System capability: SystemCapability.WindowManager.WindowManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
closingWindowTarget | WindowAnimationTarget | Yes | Target window to display the animation. |
finishCallback | WindowAnimationFinishedCallback | Yes | Callback invoked when the animation is finished. |
Example
For details, see the sample code under windowAnimationManager.setController.
onScreenUnlock
onScreenUnlock(finishCallback: WindowAnimationFinishedCallback): void
Called when the screen is unlocked.
System capability: SystemCapability.WindowManager.WindowManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
finishCallback | WindowAnimationFinishedCallback | Yes | Callback invoked when the animation is finished. |
Example
For details, see the sample code under windowAnimationManager.setController.
onWindowAnimationTargetsUpdate
onWindowAnimationTargetsUpdate(fullScreenWindowTarget: WindowAnimationTarget, floatingWindowTargets: Array<WindowAnimationTarget>): void
Called when the window that displays the animation is updated.
System capability: SystemCapability.WindowManager.WindowManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
fullScreenWindowTarget | WindowAnimationTarget | Yes | Target window in full-screen mode. |
floatingWindowTargets | Array<WindowAnimationTarget> | Yes | Target window in the form of a floating window. |
Example
For details, see the sample code under windowAnimationManager.setController.
WindowAnimationFinishedCallback
Implements a callback that is invoked when the animation is finished.
onAnimationFinish
onAnimationFinish():void
Called when the animation is finished.
System capability: SystemCapability.WindowManager.WindowManager.Core
Example
For details, see the sample code under windowAnimationManager.setController.
WindowAnimationTarget
Defines a window to display animation.
System capability: SystemCapability.WindowManager.WindowManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
bundleName | string | Yes | Bundle name corresponding to the target window. |
abilityName | string | Yes | Ability name corresponding to the target window. |
windowBounds | RRect | Yes | Actual size of the target window. |
missionId | number | Yes | Mission ID, which is used to match an ability when there are multiple missions. |
RRect
Describes a rounded rectangle.
System capability: SystemCapability.WindowManager.WindowManager.Core
Name | Type | Mandatory | Description |
---|---|---|---|
left | number | Yes | Horizontal coordinate of the upper left corner of the target window relative to the screen. |
top | number | Yes | Vertical coordinate of the upper left corner of the target window relative to the screen. |
width | number | Yes | Width of the target window. |
height | number | Yes | Height of the target window. |
radius | number | Yes | Radius of the rounded corner of the target window. |