js-apis-windowAnimationManager.md 9.2 KB
Newer Older
L
liuchao 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
# 窗口动画管理
窗口动画管理器,可以监听应用启动退出时应用的动画窗口,提供启动退出过程中控件动画和应用窗口联动动画能力。

>  **说明:**
>  该组件从API Version 9开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
>
>  本模块接口为系统接口。

## 导入模块

```js
import windowAnimationManager from '@ohos.animation.windowAnimationManager'
```

## windowAnimationManager.setController

setController(controller: WindowAnimationController): void

设置窗口动画控制器。

**参数:**

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| controller | [WindowAnimationController](#windowanimationcontroller) | 是 | 窗口动画的控制器。|

**示例:**

```js
var controller = {
    onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
      console.log('onStartAppFromLauncher', startingWindowTarget);
	},
    onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
  		console.log('onStartAppFromRecent', startingWindowTarget);
    },
    onStartAppFromOther(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
        console.log('onStartAppFromOther', startingWindowTarget);
    },
    onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
    },
    onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
    },
    onCloseWindow(closingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
    },
    onScreenUnlock(finishCallback: WindowAnimationFinishedCallback): void {
    }
}

windowAnimationManager.setController(controller)
```

## WindowAnimationController

窗口动画控制器。

### onStartAppFromLauncher

onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void

从桌面启动应用时的回调。

| 参数名               | 类型                                                         | 必填 | 说明               |
| -------------------- | ------------------------------------------------------------ | ---- | ------------------ |
| startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget)              | 是   | 动画目标窗口。     |
| finishCallback       | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |

**示例:**

```js
var controller = {
    onStartAppFromLauncher(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
      console.log('onStartAppFromLauncher', startingWindowTarget);
	}
}
```

### onStartAppFromRecent

onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget,finishCallback:WindowAnimationFinishedCallback): void

从最近任务列表启动应用时的回调。

| 参数名               | 类型                                                         | 必填 | 说明               |
| -------------------- | ------------------------------------------------------------ | ---- | ------------------ |
| startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget)              | 是   | 动画目标窗口。     |
| finishCallback       | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |

**示例:**

```js
var controller = {
    onStartAppFromRecent(startingWindowTarget: WindowAnimationTarget, finishCallback:     WindowAnimationFinishedCallback): void {
      console.log('onStartAppFromRecent', startingWindowTarget);
	}
}
```

### onStartAppFromOther

onStartAppFromOther(startingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void

从除了桌面和最近任务列表以外其他地方启动应用时的回调。

| 参数名               | 类型                                                         | 必填 | 说明               |
| -------------------- | ------------------------------------------------------------ | ---- | ------------------ |
| startingWindowTarget | [WindowAnimationTarget](#windowanimationtarget)              | 是   | 动画目标窗口。     |
| finishCallback       | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |

**示例:**

```js
var controller = {
    onStartAppFromOther(startingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
      console.log('onStartAppFromOther', startingWindowTarget);
	}
}
```

### onAppTransition

onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void

应用转场时的回调。

| 参数名               | 类型                            | 必填 | 说明             |
| -------------------- | ------------------------------- | ---- | ---------------- |
| fromWindowTarget | [WindowAnimationTarget](#windowanimationtarget)           | 是   | 转场前的动画窗口。 |
| toWindowTarget       | [WindowAnimationTarget](#windowanimationtarget) | 是   | 转场后的动画窗口。 |
| finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |

**示例:**

```js
var controller = {
	onAppTransition(fromWindowTarget: WindowAnimationTarget, toWindowTarget: WindowAnimationTarget,
	  finishCallback: WindowAnimationFinishedCallback): void {
		console.log('onAppTransition', fromWindowTarget);
	}
}
```

### onMinimizeWindow

onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void

最小化窗口时的回调。

| 参数名               | 类型                            | 必填 | 说明             |
| -------------------- | ------------------------------- | ---- | ---------------- |
| minimizingWindowTarget | [WindowAnimationTarget](#windowanimationtarget)           | 是   | 动画目标窗口。    |
| finishCallback       | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |

**示例:**

```js
var controller = {
    onMinimizeWindow(minimizingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
      console.log('onMinimizeWindow', minimizingWindowTarget);
	}
}
```

### onCloseWindow

onCloseWindow(closingWindowTarget: WindowAnimationTarget,finishCallback: WindowAnimationFinishedCallback): void

关闭窗口时的回调。

| 参数名               | 类型                            | 必填 | 说明             |
| -------------------- | ------------------------------- | ---- | ---------------- |
| closingWindowTarget | [WindowAnimationTarget](#windowanimationtarget)           | 是   | 动画目标窗口。    |
| finishCallback       | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |

**示例:**

```js
var controller = {
    onCloseWindow(closingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
      console.log('onCloseWindow', closingWindowTarget);
	}
}
```

### onScreenUnlock

onScreenUnlock(finishCallback: [WindowAnimationFinishedCallback](#windowanimationfinishedcallback)): void

屏幕解锁时的回调。

| 参数名         | 类型                                                         | 必填 | 说明               |
| -------------- | ------------------------------------------------------------ | ---- | ------------------ |
| finishCallback | [WindowAnimationFinishedCallback](#windowanimationfinishedcallback) | 是   | 动画完成后的回调。 |

**示例:**

```js
var controller = {
    onScreenUnlock(finishCallback: WindowAnimationFinishedCallback): void {
      console.log('onScreenUnlock'.);
	}
}
```

## WindowAnimationFinishedCallback
动画完成后的回调。

### onAnimationFinish

onAnimationFinish():void

结束本次动画。

**示例:**

```js
var controller = {
    onCloseWindow(closingWindowTarget: WindowAnimationTarget, finishCallback: WindowAnimationFinishedCallback): void {
      finishCallback.onAnimationFinish();
	}
}
```

## WindowAnimationTarget
动画目标窗口,用来实现动画。

| 参数      | 类型     | 描述 |
| ------- | ------ | ----------------------- |
| bundleName  | string | 动画目标窗口所对应的包名。 |
| abilityName | string | 动画目标窗口所对应的Ability名称。 |
| windowBounds | [RRect](#rrect) | 动画目标窗口所对应的实际大小。 |

## RRect
圆角矩形。

| 参数      | 类型     | 描述 |
| ------- | ------ | ----------------------- |
| left  | number | 动画目标窗口左上角相对于屏幕的横坐标。 |
| top | number | 动画目标窗口左上角相对于屏幕的纵坐标。 |
| width | number | 动画目标窗口的宽度大小。 |
| height | number | 动画目标窗口的高度大小。 |
| radius | number | 动画目标窗口的圆角大小。 |