# native_animate.h

#### 概述

提供ArkUI在Native侧的动画接口定义集合。native\_animate.h中的接口需要在主线程上调用。

**引用文件：** <arkui/native\_animate.h>

**库：** libace\_ndk.z.so

**系统能力：** SystemCapability.ArkUI.ArkUI.Full

**起始版本：** 12

**相关模块：** ArkUI\_NativeModule

**相关示例：** AnimationNDK

#### 汇总

#### 结构体

| 名称 | typedef关键字 | 描述 |
| --- | --- | --- |
| ArkUI_ExpectedFrameRateRange | ArkUI_ExpectedFrameRateRange | 设置动画的期望帧率。 |
| ArkUI_AnimateCompleteCallback | ArkUI_AnimateCompleteCallback | 动画播放结束回调类型。 |
| ArkUI_NativeAnimateAPI_1 | ArkUI_NativeAnimateAPI_1 | ArkUI提供的Native侧动画接口集合。 |
| ArkUI_AnimateOption | ArkUI_AnimateOption | 设置动画效果相关参数。 |
| ArkUI_Curve | ArkUI_Curve | 提供曲线的插值对象定义。 |
| ArkUI_Curve* | ArkUI_CurveHandle | 定义曲线的插值对象指针定义。 |
| ArkUI_KeyframeAnimateOption | ArkUI_KeyframeAnimateOption | 定义关键帧动画参数对象。 |
| ArkUI_AnimatorOption | ArkUI_AnimatorOption | 定义animator动画参数对象。 |
| ArkUI_Animator* | ArkUI_AnimatorHandle | 定义animator动画对象指针。 |
| ArkUI_AnimatorEvent | ArkUI_AnimatorEvent | 定义animator回调事件对象。 |
| ArkUI_AnimatorOnFrameEvent | ArkUI_AnimatorOnFrameEvent | 定义animator接收到帧时回调对象。 |
| ArkUI_TransitionEffect | ArkUI_TransitionEffect | 定义transition属性配置转场参数对象。 |

#### 函数

| 名称 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* OH_ArkUI_AnimateOption_Create() | 创建动画效果参数。 |
| void OH_ArkUI_AnimateOption_Dispose(ArkUI_AnimateOption* option) | 销毁动画效果参数指针。 |
| uint32_t OH_ArkUI_AnimateOption_GetDuration(ArkUI_AnimateOption* option) | 获取动画持续时间，单位为ms（毫秒）。 |
| float OH_ArkUI_AnimateOption_GetTempo(ArkUI_AnimateOption* option) | 获取动画播放速度。 |
| ArkUI_AnimationCurve OH_ArkUI_AnimateOption_GetCurve(ArkUI_AnimateOption* option) | 获取动画曲线。 |
| int32_t OH_ArkUI_AnimateOption_GetDelay(ArkUI_AnimateOption* option) | 获取动画延迟播放时间，单位为ms（毫秒）。 |
| int32_t OH_ArkUI_AnimateOption_GetIterations(ArkUI_AnimateOption* option) | 获取动画播放次数。 |
| ArkUI_AnimationPlayMode OH_ArkUI_AnimateOption_GetPlayMode(ArkUI_AnimateOption* option) | 获取动画播放模式。 |
| ArkUI_ExpectedFrameRateRange* OH_ArkUI_AnimateOption_GetExpectedFrameRateRange(ArkUI_AnimateOption* option) | 获取动画的期望帧率。 |
| void OH_ArkUI_AnimateOption_SetDuration(ArkUI_AnimateOption* option, int32_t value) | 设置动画持续时间，单位为ms（毫秒）。 |
| void OH_ArkUI_AnimateOption_SetTempo(ArkUI_AnimateOption* option, float value) | 设置动画播放速度。 |
| void OH_ArkUI_AnimateOption_SetCurve(ArkUI_AnimateOption* option, ArkUI_AnimationCurve value) | 设置动画曲线。 |
| void OH_ArkUI_AnimateOption_SetDelay(ArkUI_AnimateOption* option, int32_t value) | 设置动画延迟播放时间，单位为ms（毫秒）。 |
| void OH_ArkUI_AnimateOption_SetIterations(ArkUI_AnimateOption* option, int32_t value) | 设置动画播放次数。 |
| void OH_ArkUI_AnimateOption_SetPlayMode(ArkUI_AnimateOption* option, ArkUI_AnimationPlayMode value) | 设置动画播放模式。 |
| void OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(ArkUI_AnimateOption* option, ArkUI_ExpectedFrameRateRange* value) | 设置动画的期望帧率。 |
| void OH_ArkUI_AnimateOption_SetICurve(ArkUI_AnimateOption* option, ArkUI_CurveHandle value) | 设置动画的动画曲线。 |
| ArkUI_CurveHandle OH_ArkUI_AnimateOption_GetICurve(ArkUI_AnimateOption* option) | 获取动画的动画曲线。 |
| ArkUI_KeyframeAnimateOption* OH_ArkUI_KeyframeAnimateOption_Create(int32_t size) | 创建关键帧动画参数。 |
| void OH_ArkUI_KeyframeAnimateOption_Dispose(ArkUI_KeyframeAnimateOption* option) | 销毁关键帧动画参数。 |
| int32_t OH_ArkUI_KeyframeAnimateOption_SetDelay(ArkUI_KeyframeAnimateOption* option, int32_t value) | 设置关键帧动画的整体延时时间，单位为ms（毫秒），默认不延时播放。 |
| int32_t OH_ArkUI_KeyframeAnimateOption_SetIterations(ArkUI_KeyframeAnimateOption* option, int32_t value) | 设置关键帧动画的动画播放次数。默认播放一次，设置为-1时表示无限次播放，设置为0时表示无动画效果。 |
| int32_t OH_ArkUI_KeyframeAnimateOption_RegisterOnFinishCallback(ArkUI_KeyframeAnimateOption* option, void* userData, void (*onFinish)(void* userData)) | 设置关键帧动画播放完成回调。当关键帧动画ArkUI_KeyframeAnimateOption所有次数播放完成后调用。 |
| int32_t OH_ArkUI_KeyframeAnimateOption_SetExpectedFrameRate(ArkUI_KeyframeAnimateOption* option, ArkUI_ExpectedFrameRateRange* frameRate) | 设置关键帧动画期望帧率。 |
| int32_t OH_ArkUI_KeyframeAnimateOption_SetDuration(ArkUI_KeyframeAnimateOption* option, int32_t value, int32_t index) | 设置关键帧动画某段关键帧动画的持续时间，单位为ms（毫秒）。 |
| int32_t OH_ArkUI_KeyframeAnimateOption_SetCurve(ArkUI_KeyframeAnimateOption* option, ArkUI_CurveHandle value, int32_t index) | 设置关键帧动画某段关键帧使用的动画曲线。 |
| int32_t OH_ArkUI_KeyframeAnimateOption_RegisterOnEventCallback(ArkUI_KeyframeAnimateOption* option, void* userData, void (*event)(void* userData), int32_t index) | 设置关键帧时刻状态的闭包函数，即在该关键帧时刻要达到的状态。 |
| int32_t OH_ArkUI_KeyframeAnimateOption_GetDelay(ArkUI_KeyframeAnimateOption* option) | 获取关键帧整体延时时间，单位为ms（毫秒）。 |
| int32_t OH_ArkUI_KeyframeAnimateOption_GetIterations(ArkUI_KeyframeAnimateOption* option) | 获取关键帧动画播放次数。 |
| ArkUI_ExpectedFrameRateRange* OH_ArkUI_KeyframeAnimateOption_GetExpectedFrameRate(ArkUI_KeyframeAnimateOption* option) | 获取关键帧动画参数的期望帧率。 |
| int32_t OH_ArkUI_KeyframeAnimateOption_GetDuration(ArkUI_KeyframeAnimateOption* option, int32_t index) | 获取关键帧动画某段状态持续时间，单位为ms（毫秒）。 |
| ArkUI_CurveHandle OH_ArkUI_KeyframeAnimateOption_GetCurve(ArkUI_KeyframeAnimateOption* option, int32_t index) | 获取关键帧动画某段状态动画曲线。 |
| ArkUI_AnimatorOption* OH_ArkUI_AnimatorOption_Create(int32_t keyframeSize) | 创建animator动画对象参数。 |
| void OH_ArkUI_AnimatorOption_Dispose(ArkUI_AnimatorOption* option) | 销毁animator动画对象参数。 |
| int32_t OH_ArkUI_AnimatorOption_SetDuration(ArkUI_AnimatorOption* option, int32_t value) | 设置animator动画播放的时长，单位为ms（毫秒）。 |
| int32_t OH_ArkUI_AnimatorOption_SetDelay(ArkUI_AnimatorOption* option, int32_t value) | 设置animator动画延时播放的时间，单位为ms（毫秒）。 |
| int32_t OH_ArkUI_AnimatorOption_SetIterations(ArkUI_AnimatorOption* option, int32_t value) | 设置animator动画播放次数。默认播放一次，设置为-1时表示无限次播放，设置为0时表示无动画效果。 |
| int32_t OH_ArkUI_AnimatorOption_SetFill(ArkUI_AnimatorOption* option, ArkUI_AnimationFillMode value) | 设置animator动画执行时组件在动画开始前和结束后的状态。 |
| int32_t OH_ArkUI_AnimatorOption_SetDirection(ArkUI_AnimatorOption* option, ArkUI_AnimationDirection value) | 设置animator动画播放方向。 |
| int32_t OH_ArkUI_AnimatorOption_SetCurve(ArkUI_AnimatorOption* option, ArkUI_CurveHandle value) | 设置animator动画插值曲线。 |
| int32_t OH_ArkUI_AnimatorOption_SetBegin(ArkUI_AnimatorOption* option, float value) | 设置animator动画插值起点。 |
| int32_t OH_ArkUI_AnimatorOption_SetEnd(ArkUI_AnimatorOption* option, float value) | 设置animator动画插值终点。 |
| int32_t OH_ArkUI_AnimatorOption_SetExpectedFrameRateRange(ArkUI_AnimatorOption* option, ArkUI_ExpectedFrameRateRange* value) | 设置animator动画期望的帧率范围。 |
| int32_t OH_ArkUI_AnimatorOption_SetKeyframe(ArkUI_AnimatorOption* option, float time, float value, int32_t index) | 设置animator动画关键帧参数。 |
| int32_t OH_ArkUI_AnimatorOption_SetKeyframeCurve(ArkUI_AnimatorOption* option, ArkUI_CurveHandle value, int32_t index) | 设置animator动画关键帧曲线类型。 |
| int32_t OH_ArkUI_AnimatorOption_GetDuration(ArkUI_AnimatorOption* option) | 获取animator动画播放的时长。 |
| int32_t OH_ArkUI_AnimatorOption_GetDelay(ArkUI_AnimatorOption* option) | 获取animator动画延时播放时长。 |
| int32_t OH_ArkUI_AnimatorOption_GetIterations(ArkUI_AnimatorOption* option) | 获取animator动画播放次数。 |
| ArkUI_AnimationFillMode OH_ArkUI_AnimatorOption_GetFill(ArkUI_AnimatorOption* option) | 获取animator动画执行时组件在动画开始前和结束后的状态。 |
| ArkUI_AnimationDirection OH_ArkUI_AnimatorOption_GetDirection(ArkUI_AnimatorOption* option) | 获取animator动画播放方向。 |
| ArkUI_CurveHandle OH_ArkUI_AnimatorOption_GetCurve(ArkUI_AnimatorOption* option) | 获取animator动画插值曲线。 |
| float OH_ArkUI_AnimatorOption_GetBegin(ArkUI_AnimatorOption* option) | 获取animator动画插值起点。 |
| float OH_ArkUI_AnimatorOption_GetEnd(ArkUI_AnimatorOption* option) | 获取animator动画插值终点。 |
| ArkUI_ExpectedFrameRateRange* OH_ArkUI_AnimatorOption_GetExpectedFrameRateRange(ArkUI_AnimatorOption* option) | 获取animator动画期望的帧率范围。 |
| float OH_ArkUI_AnimatorOption_GetKeyframeTime(ArkUI_AnimatorOption* option, int32_t index) | 获取animator动画关键帧时间，单位为ms（毫秒）。 |
| float OH_ArkUI_AnimatorOption_GetKeyframeValue(ArkUI_AnimatorOption* option, int32_t index) | 获取animator动画关键帧数值。 |
| ArkUI_CurveHandle OH_ArkUI_AnimatorOption_GetKeyframeCurve(ArkUI_AnimatorOption* option, int32_t index) | 获取animator动画关键帧动画插值曲线。 |
| void* OH_ArkUI_AnimatorEvent_GetUserData(ArkUI_AnimatorEvent* event) | 获取动画事件对象中的用户自定义对象。 |
| void* OH_ArkUI_AnimatorOnFrameEvent_GetUserData(ArkUI_AnimatorOnFrameEvent* event) | 获取动画的帧事件中的用户自定义对象。 |
| float OH_ArkUI_AnimatorOnFrameEvent_GetValue(ArkUI_AnimatorOnFrameEvent* event) | 获取动画帧回调事件对象中的插值结果。 |
| int32_t OH_ArkUI_AnimatorOption_RegisterOnFrameCallback(ArkUI_AnimatorOption* option, void* userData, void (*callback)(ArkUI_AnimatorOnFrameEvent* event)) | 设置animator动画接收到帧时回调。 |
| int32_t OH_ArkUI_AnimatorOption_RegisterOnFinishCallback(ArkUI_AnimatorOption* option, void* userData, void (*callback)(ArkUI_AnimatorEvent* event)) | 设置animator动画完成时回调。 |
| int32_t OH_ArkUI_AnimatorOption_RegisterOnCancelCallback(ArkUI_AnimatorOption* option, void* userData, void (*callback)(ArkUI_AnimatorEvent* event)) | 设置animator动画被取消时回调。 |
| int32_t OH_ArkUI_AnimatorOption_RegisterOnRepeatCallback(ArkUI_AnimatorOption* option, void* userData, void (*callback)(ArkUI_AnimatorEvent* event)) | 设置animator动画重复时回调。 |
| int32_t OH_ArkUI_Animator_ResetAnimatorOption(ArkUI_AnimatorHandle animatorHandle, ArkUI_AnimatorOption* option) | 重置animator动画。 |
| int32_t OH_ArkUI_Animator_Play(ArkUI_AnimatorHandle animatorHandle) | 启动animator动画。 |
| int32_t OH_ArkUI_Animator_Finish(ArkUI_AnimatorHandle animatorHandle) | 结束animator动画。 |
| int32_t OH_ArkUI_Animator_Pause(ArkUI_AnimatorHandle animatorHandle) | 暂停animator动画。 |
| int32_t OH_ArkUI_Animator_Cancel(ArkUI_AnimatorHandle animatorHandle) | 取消animator动画。 |
| int32_t OH_ArkUI_Animator_Reverse(ArkUI_AnimatorHandle animatorHandle) | 以相反的顺序播放animator动画。 |
| ArkUI_CurveHandle OH_ArkUI_Curve_CreateCurveByType(ArkUI_AnimationCurve curve) | 插值曲线的初始化函数，可以根据入参创建一个插值曲线对象。 |
| ArkUI_CurveHandle OH_ArkUI_Curve_CreateStepsCurve(int32_t count, bool end) | 构造阶梯曲线对象。 |
| ArkUI_CurveHandle OH_ArkUI_Curve_CreateCubicBezierCurve(float x1, float y1, float x2, float y2) | 构造三阶贝塞尔曲线对象。 |
| ArkUI_CurveHandle OH_ArkUI_Curve_CreateSpringCurve(float velocity, float mass, float stiffness, float damping) | 构造弹簧曲线对象，曲线形状由弹簧参数决定，动画时长受animation、animateTo中的duration参数控制。 |
| ArkUI_CurveHandle OH_ArkUI_Curve_CreateSpringMotion(float response, float dampingFraction, float overlapDuration) | 构造弹性动画曲线对象。如果对同一对象的同一属性进行多个弹性动画，每个动画会替换掉前一个动画，并继承之前的速度。 |
| ArkUI_CurveHandle OH_ArkUI_Curve_CreateResponsiveSpringMotion(float response, float dampingFraction, float overlapDuration) | 构造弹性跟手动画曲线对象，是springMotion的一种特例，仅默认参数不同，可与springMotion混合使用。 |
| ArkUI_CurveHandle OH_ArkUI_Curve_CreateInterpolatingSpring(float velocity, float mass, float stiffness, float damping) | 构造插值器弹簧曲线对象，生成一条从0到1的动画曲线，实际动画值根据曲线进行插值计算。 |
| ArkUI_CurveHandle OH_ArkUI_Curve_CreateCustomCurve(void* userData, float (*interpolate)(float fraction, void* userdata)) | 构造自定义曲线对象。 |
| void OH_ArkUI_Curve_DisposeCurve(ArkUI_CurveHandle curveHandle) | 销毁自定义曲线对象。 |
| ArkUI_TransitionEffect* OH_ArkUI_CreateOpacityTransitionEffect(float opacity) | 创建组件转场时的透明度效果对象。 |
| ArkUI_TransitionEffect* OH_ArkUI_CreateTranslationTransitionEffect(ArkUI_TranslationOptions* translate) | 创建组件转场时的平移效果对象。 |
| ArkUI_TransitionEffect* OH_ArkUI_CreateScaleTransitionEffect(ArkUI_ScaleOptions* scale) | 创建组件转场时的缩放效果对象。 |
| ArkUI_TransitionEffect* OH_ArkUI_CreateRotationTransitionEffect(ArkUI_RotationOptions* rotate) | 创建组件转场时的旋转效果对象。 |
| ArkUI_TransitionEffect* OH_ArkUI_CreateMovementTransitionEffect(ArkUI_TransitionEdge edge) | 创建组件平移效果对象。 |
| ArkUI_TransitionEffect* OH_ArkUI_CreateAsymmetricTransitionEffect(ArkUI_TransitionEffect* appear, ArkUI_TransitionEffect* disappear) | 创建非对称的转场效果对象。 |
| void OH_ArkUI_TransitionEffect_Dispose(ArkUI_TransitionEffect* effect) | 销毁转场效果对象。 |
| int32_t OH_ArkUI_TransitionEffect_Combine(ArkUI_TransitionEffect* firstEffect, ArkUI_TransitionEffect* secondEffect) | 设置转场效果链式组合，以形成包含多种转场效果的TransitionEffect。 |
| int32_t OH_ArkUI_TransitionEffect_SetAnimation(ArkUI_TransitionEffect* effect, ArkUI_AnimateOption* animation) | 设置转场效果动画参数。 |

#### 函数说明

#### OH\_ArkUI\_AnimateOption\_Create()

```
ArkUI_AnimateOption* OH_ArkUI_AnimateOption_Create()
```

**描述：**

创建动画效果参数。

**起始版本：** 12

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_AnimateOption* | 新的动画效果参数指针。 |

#### OH\_ArkUI\_AnimateOption\_Dispose()

```
void OH_ArkUI_AnimateOption_Dispose(ArkUI_AnimateOption* option)
```

**描述：**

销毁动画效果参数指针。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，操作无效。 |

#### OH\_ArkUI\_AnimateOption\_GetDuration()

```
uint32_t OH_ArkUI_AnimateOption_GetDuration(ArkUI_AnimateOption* option)
```

**描述：**

获取动画持续时间，单位为ms（毫秒）。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，返回0。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| uint32_t | 动画持续时间，单位为ms（毫秒）。option异常时返回0。 |

#### OH\_ArkUI\_AnimateOption\_GetTempo()

```
float OH_ArkUI_AnimateOption_GetTempo(ArkUI_AnimateOption* option)
```

**描述：**

获取动画播放速度。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，返回0.0。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 动画播放速度。取值范围：[0, +∞)。option异常时返回0.0。 |

#### OH\_ArkUI\_AnimateOption\_GetCurve()

```
ArkUI_AnimationCurve OH_ArkUI_AnimateOption_GetCurve(ArkUI_AnimateOption* option)
```

**描述：**

获取动画曲线。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，返回-1。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_AnimationCurve | 动画曲线。option异常时返回-1。 |

#### OH\_ArkUI\_AnimateOption\_GetDelay()

```
int32_t OH_ArkUI_AnimateOption_GetDelay(ArkUI_AnimateOption* option)
```

**描述：**

获取动画延迟播放时间，单位为ms（毫秒）。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，返回0。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 动画延迟播放时间。option异常时返回0。 |

#### OH\_ArkUI\_AnimateOption\_GetIterations()

```
int32_t OH_ArkUI_AnimateOption_GetIterations(ArkUI_AnimateOption* option)
```

**描述：**

获取动画播放次数。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，返回0。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 动画播放次数。option异常时返回0。 |

#### OH\_ArkUI\_AnimateOption\_GetPlayMode()

```
ArkUI_AnimationPlayMode OH_ArkUI_AnimateOption_GetPlayMode(ArkUI_AnimateOption* option)
```

**描述：**

获取动画播放模式。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，返回-1。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_AnimationPlayMode | 动画播放模式。option异常时返回-1。 |

#### OH\_ArkUI\_AnimateOption\_GetExpectedFrameRateRange()

```
ArkUI_ExpectedFrameRateRange* OH_ArkUI_AnimateOption_GetExpectedFrameRateRange(ArkUI_AnimateOption* option)
```

**描述：**

获取动画的期望帧率。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，返回NULL。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ExpectedFrameRateRange* | 动画的期望帧率，单位为帧/秒（fps）。option异常时返回NULL。 |

#### OH\_ArkUI\_AnimateOption\_SetDuration()

```
void OH_ArkUI_AnimateOption_SetDuration(ArkUI_AnimateOption* option, int32_t value)
```

**描述：**

设置动画持续时间，单位为ms（毫秒）。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，操作无效。 |
| int32_t value | 动画持续时间，单位为ms（毫秒）。取值范围：[0, +∞)。 value小于0时，按0处理。 |

#### OH\_ArkUI\_AnimateOption\_SetTempo()

```
void OH_ArkUI_AnimateOption_SetTempo(ArkUI_AnimateOption* option, float value)
```

**描述：**

设置动画播放速度。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，操作无效。 |
| float value | 动画播放速度。取值范围：[0, +∞)。 说明： 传入小于0的数值，会默认设置为1。 |

#### OH\_ArkUI\_AnimateOption\_SetCurve()

```
void OH_ArkUI_AnimateOption_SetCurve(ArkUI_AnimateOption* option, ArkUI_AnimationCurve value)
```

**描述：**

设置动画曲线。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，操作无效。 |
| ArkUI_AnimationCurve value | 动画曲线。默认值：ARKUI_CURVE_LINEAR，建议使用ARKUI_CURVE_EASE_IN_OUT获得更平滑的动画效果。 value值异常时，设置无效。 |

#### OH\_ArkUI\_AnimateOption\_SetDelay()

```
void OH_ArkUI_AnimateOption_SetDelay(ArkUI_AnimateOption* option, int32_t value)
```

**描述：**

设置动画延迟播放时间，单位为ms（毫秒）。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，操作无效。 |
| int32_t value | 动画延迟播放时间，单位为ms（毫秒）。取值范围：(-∞, +∞)。默认值：0，表示不延迟。value大于0时表示延迟播放，小于0表示提前播放。value小于0时，如果value的绝对值小于实际动画时长，动画将在开始后第一帧直接运动到value绝对值的时刻的状态；如果value的绝对值大于等于实际动画时长，动画将在开始后第一帧直接运动到终点状态。其中实际动画时长等于单次动画时长乘以动画播放次数。 |

#### OH\_ArkUI\_AnimateOption\_SetIterations()

```
void OH_ArkUI_AnimateOption_SetIterations(ArkUI_AnimateOption* option, int32_t value)
```

**描述：**

设置动画播放次数。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，操作无效。 |
| int32_t value | 动画播放次数。取值范围：[-1, +∞)，其中设置为0时不播放，-1表示无限次播放。默认值：1（播放一次）。 value小于-1时，操作无效。 |

#### OH\_ArkUI\_AnimateOption\_SetPlayMode()

```
void OH_ArkUI_AnimateOption_SetPlayMode(ArkUI_AnimateOption* option, ArkUI_AnimationPlayMode value)
```

**描述：**

设置动画播放模式。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，操作无效。 |
| ArkUI_AnimationPlayMode value | 动画播放模式。默认值：ARKUI_ANIMATION_PLAY_MODE_NORMAL。 value值异常时，操作无效。 |

#### OH\_ArkUI\_AnimateOption\_SetExpectedFrameRateRange()

```
void OH_ArkUI_AnimateOption_SetExpectedFrameRateRange(ArkUI_AnimateOption* option, ArkUI_ExpectedFrameRateRange* value)
```

**描述：**

设置动画的期望帧率。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 动画效果参数。 option为NULL时，操作无效。 |
| ArkUI_ExpectedFrameRateRange* value | 动画的期望帧率，单位为帧/秒（fps）。 value为NULL时，操作无效。 |

#### OH\_ArkUI\_AnimateOption\_SetICurve()

```
void OH_ArkUI_AnimateOption_SetICurve(ArkUI_AnimateOption* option, ArkUI_CurveHandle value)
```

**描述：**

设置动画的动画曲线。

此方法优先于OH\_ArkUI\_AnimateOption\_SetCurve生效。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 设置动画效果相关参数。 option为NULL时，操作无效。 |
| ArkUI_CurveHandle value | 动画曲线参数。 value为NULL时，操作无效。 |

#### OH\_ArkUI\_AnimateOption\_GetICurve()

```
ArkUI_CurveHandle OH_ArkUI_AnimateOption_GetICurve(ArkUI_AnimateOption* option)
```

**描述：**

获取动画的动画曲线。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimateOption* option | 设置动画效果相关参数。 option为NULL时，返回NULL。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_CurveHandle | 动画的动画曲线。参数option异常时返回NULL。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_Create()

```
ArkUI_KeyframeAnimateOption* OH_ArkUI_KeyframeAnimateOption_Create(int32_t size)
```

**描述：**

创建关键帧动画参数。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| int32_t size | 关键帧动画状态数。 size小于0时返回NULL。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* | 关键帧动画参数对象。size小于0时返回NULL，option异常时返回NULL。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_Dispose()

```
void OH_ArkUI_KeyframeAnimateOption_Dispose(ArkUI_KeyframeAnimateOption* option)
```

**描述：**

销毁关键帧动画参数。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数对象。 option为NULL时，操作无效。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_SetDelay()

```
int32_t OH_ArkUI_KeyframeAnimateOption_SetDelay(ArkUI_KeyframeAnimateOption* option, int32_t value)
```

**描述：**

设置关键帧动画的整体延时时间，单位为ms（毫秒），默认不延时播放。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| int32_t value | 动画延迟播放时间，单位为ms（毫秒）。取值范围：(-∞, +∞)。默认值：0，表示不延迟。value大于0为延迟播放，value小于0表示提前播放。对于value小于0的情况：当value的绝对值小于实际动画时长，动画将在开始后第一帧直接运动到value绝对值的时刻的状态；当value的绝对值大于等于实际动画时长，动画将在开始后第一帧直接运动到终点状态。其中实际动画时长等于单次动画时长乘以动画播放次数。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_SetIterations()

```
int32_t OH_ArkUI_KeyframeAnimateOption_SetIterations(ArkUI_KeyframeAnimateOption* option, int32_t value)
```

**描述：**

设置关键帧动画的动画播放次数。默认播放一次，设置为-1时表示无限次播放，设置为0时表示无动画效果。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| int32_t value | 动画播放次数。取值范围：[-1, +∞)，其中设置为0时不播放，-1表示无限次播放。默认值：1，表示播放一次。 value小于-1时，操作无效，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_RegisterOnFinishCallback()

```
int32_t OH_ArkUI_KeyframeAnimateOption_RegisterOnFinishCallback(ArkUI_KeyframeAnimateOption* option, void* userData, void (*onFinish)(void* userData))
```

**描述：**

设置关键帧动画播放完成回调。当关键帧动画ArkUI\_KeyframeAnimateOption所有次数播放完成后调用。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| void* userData | 用户自定义对象指针。 不涉及异常值处理。 |
| void (*onFinish)(void* userData) | 回调方法。 userData：回调函数的入参，用户自定义对象指针。 onFinish为NULL时，操作无效。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_SetExpectedFrameRate()

```
int32_t OH_ArkUI_KeyframeAnimateOption_SetExpectedFrameRate(ArkUI_KeyframeAnimateOption* option, ArkUI_ExpectedFrameRateRange* frameRate)
```

**描述：**

设置关键帧动画期望帧率。

**起始版本：** 19

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| ArkUI_ExpectedFrameRateRange* frameRate | 关键帧动画的期望帧率。 frameRate为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_SetDuration()

```
int32_t OH_ArkUI_KeyframeAnimateOption_SetDuration(ArkUI_KeyframeAnimateOption* option, int32_t value, int32_t index)
```

**描述：**

设置关键帧动画某段关键帧动画的持续时间，单位为ms（毫秒）。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| int32_t value | 关键帧动画的持续时间，单位为ms（毫秒），默认值1000ms。取值范围：[0, +∞)。 value小于0时，按0处理。 |
| int32_t index | 状态索引值。 index小于0时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_SetCurve()

```
int32_t OH_ArkUI_KeyframeAnimateOption_SetCurve(ArkUI_KeyframeAnimateOption* option, ArkUI_CurveHandle value, int32_t index)
```

**描述：**

设置关键帧动画某段关键帧使用的动画曲线。

由于springMotion、responsiveSpringMotion、interpolatingSpring曲线时长不生效，故不支持这三种曲线。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| ArkUI_CurveHandle value | 该关键帧使用的动画曲线。默认值：ARKUI_CURVE_EASE_IN_OUT。 |
| int32_t index | 状态索引值。取值范围：[0, size-1]，其中size为关键帧动画状态数。 index小于0或index超出范围时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_RegisterOnEventCallback()

```
int32_t OH_ArkUI_KeyframeAnimateOption_RegisterOnEventCallback(ArkUI_KeyframeAnimateOption* option, void* userData, void (*event)(void* userData), int32_t index)
```

**描述：**

设置关键帧时刻状态的闭包函数，即在该关键帧时刻要达到的状态。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| void* userData | 用户定义对象指针。 不涉及异常值处理。 |
| void (*event)(void* userData) | 闭包函数。 event为NULL时，操作无效。 |
| int32_t index | 状态索引值。取值范围：[0, size-1]，其中size为关键帧动画状态数。 index小于0或index超出范围时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_GetDelay()

```
int32_t OH_ArkUI_KeyframeAnimateOption_GetDelay(ArkUI_KeyframeAnimateOption* option)
```

**描述：**

获取关键帧整体延时时间，单位为ms（毫秒）。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数。 option为NULL时，返回0。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 整体延时时间，单位为ms（毫秒）。option异常时返回0。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_GetIterations()

```
int32_t OH_ArkUI_KeyframeAnimateOption_GetIterations(ArkUI_KeyframeAnimateOption* option)
```

**描述：**

获取关键帧动画播放次数。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数。 option为NULL时，返回0。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 动画播放次数。option异常时返回0。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_GetExpectedFrameRate()

```
ArkUI_ExpectedFrameRateRange* OH_ArkUI_KeyframeAnimateOption_GetExpectedFrameRate(ArkUI_KeyframeAnimateOption* option)
```

**描述：**

获取关键帧动画参数的期望帧率。

**起始版本：** 19

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数。 option为NULL时，返回NULL。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ExpectedFrameRateRange* | 关键帧动画参数的期望帧率。option异常时返回NULL。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_GetDuration()

```
int32_t OH_ArkUI_KeyframeAnimateOption_GetDuration(ArkUI_KeyframeAnimateOption* option, int32_t index)
```

**描述：**

获取关键帧动画某段状态持续时间，单位为ms（毫秒）。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数。 option为NULL时，返回0。 |
| int32_t index | 状态索引值。 index小于0时，返回0。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 持续时间，单位为ms（毫秒）。option异常时返回0。 |

#### OH\_ArkUI\_KeyframeAnimateOption\_GetCurve()

```
ArkUI_CurveHandle OH_ArkUI_KeyframeAnimateOption_GetCurve(ArkUI_KeyframeAnimateOption* option, int32_t index)
```

**描述：**

获取关键帧动画某段状态动画曲线。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_KeyframeAnimateOption* option | 关键帧动画参数。 option为NULL时，返回NULL。 |
| int32_t index | 状态索引值。 index小于0时，返回NULL。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_CurveHandle | 动画曲线。参数异常时返回NULL。 |

#### OH\_ArkUI\_AnimatorOption\_Create()

```
ArkUI_AnimatorOption* OH_ArkUI_AnimatorOption_Create(int32_t keyframeSize)
```

**描述：**

创建animator动画对象参数。

keyframeSize大于0时，动画插值起点默认是0，动画插值终点模式值是1。不支持设置。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| int32_t keyframeSize | 关键帧个数。 keyframeSize小于0时返回NULL。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_AnimatorOption* | animator动画对象参数指针。size小于0时返回NULL，option异常时返回NULL。 |

#### OH\_ArkUI\_AnimatorOption\_Dispose()

```
void OH_ArkUI_AnimatorOption_Dispose(ArkUI_AnimatorOption* option)
```

**描述：**

销毁animator动画对象参数。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 option为NULL时，操作无效。 |

#### OH\_ArkUI\_AnimatorOption\_SetDuration()

```
int32_t OH_ArkUI_AnimatorOption_SetDuration(ArkUI_AnimatorOption* option, int32_t value)
```

**描述：**

设置animator动画播放的时长，单位毫秒。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| int32_t value | 播放的时长，单位为ms（毫秒），默认值0ms。取值范围：[0, +∞)。 value小于0时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_SetDelay()

```
int32_t OH_ArkUI_AnimatorOption_SetDelay(ArkUI_AnimatorOption* option, int32_t value)
```

**描述：**

设置animator动画延时播放的时间，单位为ms（毫秒）。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| int32_t value | 动画延迟播放时间，单位为ms（毫秒）。取值范围：(-∞, +∞)。默认值：0，表示不延迟。value大于0为延迟播放，value小于0表示提前播放。对于value小于0的情况：当value的绝对值小于实际动画时长，动画将在开始后第一帧直接运动到value绝对值的时刻的状态；当value的绝对值大于等于实际动画时长，动画将在开始后第一帧直接运动到终点状态。其中实际动画时长等于单次动画时长乘以动画播放次数。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_SetIterations()

```
int32_t OH_ArkUI_AnimatorOption_SetIterations(ArkUI_AnimatorOption* option, int32_t value)
```

**描述：**

设置animator动画播放次数。默认播放一次，设置为-1时表示无限次播放，设置为0时表示无动画效果。

设置为除-1外其他负数视为无效取值，无效取值动画默认播放1次。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| int32_t value | 取值范围：[-1, +∞)，其中设置为0时不播放，-1表示无限次播放。默认值：1（播放一次）。 value小于-1时，操作无效。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_SetFill()

```
int32_t OH_ArkUI_AnimatorOption_SetFill(ArkUI_AnimatorOption* option, ArkUI_AnimationFillMode value)
```

**描述：**

设置animator动画执行时组件在动画开始前和结束后的状态。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| ArkUI_AnimationFillMode value | 动画执行时组件在动画开始前和结束后的状态。默认值：ARKUI_ANIMATION_FILL_MODE_FORWARDS。 value小于0时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_SetDirection()

```
int32_t OH_ArkUI_AnimatorOption_SetDirection(ArkUI_AnimatorOption* option, ArkUI_AnimationDirection value)
```

**描述：**

设置animator动画播放方向。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| ArkUI_AnimationDirection value | 动画播放方向。 value小于0时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_SetCurve()

```
int32_t OH_ArkUI_AnimatorOption_SetCurve(ArkUI_AnimatorOption* option, ArkUI_CurveHandle value)
```

**描述：**

设置animator动画插值曲线。

不支持springCurve、springMotion、responsiveSpringMotion、interpolatingSpring，customCurve动画曲线。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| ArkUI_CurveHandle value | 动画插值曲线。默认值：ARKUI_CURVE_LINEAR，建议使用ARKUI_CURVE_EASE_IN_OUT获得更平滑的动画效果。 value为NULL时，使用默认曲线ARKUI_CURVE_LINEAR。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_SetBegin()

```
int32_t OH_ArkUI_AnimatorOption_SetBegin(ArkUI_AnimatorOption* option, float value)
```

**描述：**

设置animator动画插值起点。

当Animator动画为关键帧动画ArkUI\_KeyframeAnimateOption时，此方法不生效。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| float value | 动画插值起点。取值范围：(-∞, +∞)。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_SetEnd()

```
int32_t OH_ArkUI_AnimatorOption_SetEnd(ArkUI_AnimatorOption* option, float value)
```

**描述：**

设置animator动画插值终点。

当Animator动画为关键帧动画ArkUI\_KeyframeAnimateOption时，此方法不生效。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| float value | 动画插值终点。取值范围：(-∞, +∞)。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_SetExpectedFrameRateRange()

```
int32_t OH_ArkUI_AnimatorOption_SetExpectedFrameRateRange(ArkUI_AnimatorOption* option, ArkUI_ExpectedFrameRateRange* value)
```

**描述：**

设置animator动画期望的帧率范围。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| ArkUI_ExpectedFrameRateRange* value | 期望的帧率范围对象。 value为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_SetKeyframe()

```
int32_t OH_ArkUI_AnimatorOption_SetKeyframe(ArkUI_AnimatorOption* option, float time, float value, int32_t index)
```

**描述：**

设置animator动画关键帧参数。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| float time | 关键帧时间。取值范围：[0, 1], 必须是递增。默认值：按索引均匀分布（如第1帧为0.0，第2帧为0.5，第3帧为1.0）。 time小于0或time大于1时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| float value | 关键帧数值。取值范围：(-∞, +∞)。 |
| int32_t index | 关键帧的索引值。 index小于0时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_SetKeyframeCurve()

```
int32_t OH_ArkUI_AnimatorOption_SetKeyframeCurve(ArkUI_AnimatorOption* option, ArkUI_CurveHandle value, int32_t index)
```

**描述：**

设置animator动画关键帧曲线类型。

不支持springCurve、springMotion、responsiveSpringMotion、interpolatingSpring，customCurve动画曲线。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 option为NULL时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |
| ArkUI_CurveHandle value | 动画插值曲线。默认值：NULL，表示线性插值。 |
| int32_t index | 关键帧的索引值。 index小于0时，返回错误码ARKUI_ERROR_CODE_PARAM_INVALID。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_GetDuration()

```
int32_t OH_ArkUI_AnimatorOption_GetDuration(ArkUI_AnimatorOption* option)
```

**描述：**

获取animator动画播放的时长。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画参数。 option为NULL时，返回0。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 动画播放的时长，单位毫秒。option异常时返回0。 |

#### OH\_ArkUI\_AnimatorOption\_GetDelay()

```
int32_t OH_ArkUI_AnimatorOption_GetDelay(ArkUI_AnimatorOption* option)
```

**描述：**

获取animator动画延时播放时长。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画参数。option为NULL时，返回0。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 动画延时播放时长，单位毫秒。option异常时返回0。 |

#### OH\_ArkUI\_AnimatorOption\_GetIterations()

```
int32_t OH_ArkUI_AnimatorOption_GetIterations(ArkUI_AnimatorOption* option)
```

**描述：**

获取animator动画播放次数。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画动画参数。option为NULL时，返回0。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 动画播放次数。option异常时返回0。 |

#### OH\_ArkUI\_AnimatorOption\_GetFill()

```
ArkUI_AnimationFillMode OH_ArkUI_AnimatorOption_GetFill(ArkUI_AnimatorOption* option)
```

**描述：**

获取animator动画执行时组件在动画开始前和结束后的状态。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画参数。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_AnimationFillMode | 动画执行时组件在动画开始前和结束后的状态。option异常时返回-1。 |

#### OH\_ArkUI\_AnimatorOption\_GetDirection()

```
ArkUI_AnimationDirection OH_ArkUI_AnimatorOption_GetDirection(ArkUI_AnimatorOption* option)
```

**描述：**

获取animator动画播放方向。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画参数。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_AnimationDirection | 动画播放方向。option异常时返回-1。 |

#### OH\_ArkUI\_AnimatorOption\_GetCurve()

```
ArkUI_CurveHandle OH_ArkUI_AnimatorOption_GetCurve(ArkUI_AnimatorOption* option)
```

**描述：**

获取animator动画插值曲线。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画参数。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_CurveHandle | 动画插值曲线。option异常时返回NULL。 |

#### OH\_ArkUI\_AnimatorOption\_GetBegin()

```
float OH_ArkUI_AnimatorOption_GetBegin(ArkUI_AnimatorOption* option)
```

**描述：**

获取animator动画插值起点。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画参数。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 动画插值起点。option异常时返回0.0。 |

#### OH\_ArkUI\_AnimatorOption\_GetEnd()

```
float OH_ArkUI_AnimatorOption_GetEnd(ArkUI_AnimatorOption* option)
```

**描述：**

获取animator动画插值终点。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画参数。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 动画插值终点。option异常时返回0.0。 |

#### OH\_ArkUI\_AnimatorOption\_GetExpectedFrameRateRange()

```
ArkUI_ExpectedFrameRateRange* OH_ArkUI_AnimatorOption_GetExpectedFrameRateRange(ArkUI_AnimatorOption* option)
```

**描述：**

获取animator动画期望的帧率范围。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画参数。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_ExpectedFrameRateRange* | 期望的帧率范围对象指针。函数参数异常时返回NULL。 |

#### OH\_ArkUI\_AnimatorOption\_GetKeyframeTime()

```
float OH_ArkUI_AnimatorOption_GetKeyframeTime(ArkUI_AnimatorOption* option, int32_t index)
```

**描述：**

获取animator动画关键帧时间，单位为ms（毫秒）。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 |
| int32_t index | 关键帧的索引值。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 关键帧时间，单位为ms（毫秒）。 |

#### OH\_ArkUI\_AnimatorOption\_GetKeyframeValue()

```
float OH_ArkUI_AnimatorOption_GetKeyframeValue(ArkUI_AnimatorOption* option, int32_t index)
```

**描述：**

获取animator动画关键帧数值。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 |
| int32_t index | 关键帧的索引值。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 关键帧数值。 |

#### OH\_ArkUI\_AnimatorOption\_GetKeyframeCurve()

```
ArkUI_CurveHandle OH_ArkUI_AnimatorOption_GetKeyframeCurve(ArkUI_AnimatorOption* option, int32_t index)
```

**描述：**

获取animator动画关键帧动画插值曲线。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画对象参数。 |
| int32_t index | 关键帧的索引值。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_CurveHandle | 动画插值曲线。函数参数异常时返回NULL。 |

#### OH\_ArkUI\_AnimatorEvent\_GetUserData()

```
void* OH_ArkUI_AnimatorEvent_GetUserData(ArkUI_AnimatorEvent* event)
```

**描述：**

获取动画事件对象中的用户自定义对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorEvent* event | 动画事件对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| void* | 用户自定义对象。 |

#### OH\_ArkUI\_AnimatorOnFrameEvent\_GetUserData()

```
void* OH_ArkUI_AnimatorOnFrameEvent_GetUserData(ArkUI_AnimatorOnFrameEvent* event)
```

**描述：**

获取动画的帧事件中的用户自定义对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOnFrameEvent* event | 动画事件对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| void* | 用户自定义对象。 |

#### OH\_ArkUI\_AnimatorOnFrameEvent\_GetValue()

```
float OH_ArkUI_AnimatorOnFrameEvent_GetValue(ArkUI_AnimatorOnFrameEvent* event)
```

**描述：**

获取动画帧回调事件对象中的插值结果。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOnFrameEvent* event | 动画事件对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| float | 动画插值结果。 说明： 在动画过程中，插值结果根据动画参数在插值起点OH_ArkUI_AnimatorOption_SetBegin和插值终点OH_ArkUI_AnimatorOption_SetEnd间变化。 |

#### OH\_ArkUI\_AnimatorOption\_RegisterOnFrameCallback()

```
int32_t OH_ArkUI_AnimatorOption_RegisterOnFrameCallback(ArkUI_AnimatorOption* option, void* userData, void (*callback)(ArkUI_AnimatorOnFrameEvent* event))
```

**描述：**

设置animator动画接收到帧时回调。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画参数。 |
| void* userData | 用户自定义参数。 |
| void (*callback)(ArkUI_AnimatorOnFrameEvent* event) | 回调函数。 - event：回调函数的入参，动画事件对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_RegisterOnFinishCallback()

```
int32_t OH_ArkUI_AnimatorOption_RegisterOnFinishCallback(ArkUI_AnimatorOption* option, void* userData, void (*callback)(ArkUI_AnimatorEvent* event))
```

**描述：**

设置animator动画完成时回调。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画参数。 |
| void* userData | 用户自定义参数。 |
| void (*callback)(ArkUI_AnimatorEvent* event) | 回调函数。 - event：回调函数的入参，动画事件对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_RegisterOnCancelCallback()

```
int32_t OH_ArkUI_AnimatorOption_RegisterOnCancelCallback(ArkUI_AnimatorOption* option, void* userData, void (*callback)(ArkUI_AnimatorEvent* event))
```

**描述：**

设置animator动画被取消时回调。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画参数。 |
| void* userData | 用户自定义参数。 |
| void (*callback)(ArkUI_AnimatorEvent* event) | 回调函数。 - event：回调函数的入参，动画事件对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_AnimatorOption\_RegisterOnRepeatCallback()

```
int32_t OH_ArkUI_AnimatorOption_RegisterOnRepeatCallback(ArkUI_AnimatorOption* option, void* userData, void (*callback)(ArkUI_AnimatorEvent* event))
```

**描述：**

设置animator动画重复时回调。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorOption* option | animator动画参数。 |
| void* userData | 用户自定义参数。 |
| void (*callback)(ArkUI_AnimatorEvent* event) | 回调函数。 - event：回调函数的入参，动画事件对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_Animator\_ResetAnimatorOption()

```
int32_t OH_ArkUI_Animator_ResetAnimatorOption(ArkUI_AnimatorHandle animatorHandle, ArkUI_AnimatorOption* option)
```

**描述：**

重置animator动画。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorHandle animatorHandle | animator动画对象。 |
| ArkUI_AnimatorOption* option | animator动画参数。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_Animator\_Play()

```
int32_t OH_ArkUI_Animator_Play(ArkUI_AnimatorHandle animatorHandle)
```

**描述：**

启动animator动画。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorHandle animatorHandle | animator动画对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_Animator\_Finish()

```
int32_t OH_ArkUI_Animator_Finish(ArkUI_AnimatorHandle animatorHandle)
```

**描述：**

结束animator动画。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorHandle animatorHandle | animator动画对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_Animator\_Pause()

```
int32_t OH_ArkUI_Animator_Pause(ArkUI_AnimatorHandle animatorHandle)
```

**描述：**

暂停animator动画。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorHandle animatorHandle | animator动画对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_Animator\_Cancel()

```
int32_t OH_ArkUI_Animator_Cancel(ArkUI_AnimatorHandle animatorHandle)
```

**描述：**

取消animator动画。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorHandle animatorHandle | animator动画对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_Animator\_Reverse()

```
int32_t OH_ArkUI_Animator_Reverse(ArkUI_AnimatorHandle animatorHandle)
```

**描述：**

以相反的顺序播放animator动画。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimatorHandle animatorHandle | animator动画对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_Curve\_CreateCurveByType()

```
ArkUI_CurveHandle OH_ArkUI_Curve_CreateCurveByType(ArkUI_AnimationCurve curve)
```

**描述：**

插值曲线的初始化函数，可以根据入参创建一个插值曲线对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_AnimationCurve curve | 曲线类型。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_CurveHandle | 曲线的插值对象指针。如果参数异常返回NULL。 |

#### OH\_ArkUI\_Curve\_CreateStepsCurve()

```
ArkUI_CurveHandle OH_ArkUI_Curve_CreateStepsCurve(int32_t count, bool end)
```

**描述：**

构造阶梯曲线对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| int32_t count | 阶梯的数量，需要为正整数，取值范围：[1, +∞)。 count值异常时，操作无效。 |
| bool end | 在每个间隔的起点或是终点发生阶跃变化。true：在终点发生阶跃变化。false：在起点发生阶跃变化。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_CurveHandle | 曲线的插值对象指针。如果参数异常返回NULL。 |

#### OH\_ArkUI\_Curve\_CreateCubicBezierCurve()

```
ArkUI_CurveHandle OH_ArkUI_Curve_CreateCubicBezierCurve(float x1, float y1, float x2, float y2)
```

**描述：**

构造三阶贝塞尔曲线对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| float x1 | 确定贝塞尔曲线第一点横坐标，取值范围：[0, 1]。设置的值小于0时，按0处理；设置的值大于1时，按1处理。 |
| float y1 | 确定贝塞尔曲线第一点纵坐标。 |
| float x2 | 确定贝塞尔曲线第二点横坐标，取值范围：[0, 1]。设置的值小于0时，按0处理；设置的值大于1时，按1处理。 |
| float y2 | 确定贝塞尔曲线第二点纵坐标。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_CurveHandle | 曲线的插值对象指针。如果参数异常返回NULL。 |

#### OH\_ArkUI\_Curve\_CreateSpringCurve()

```
ArkUI_CurveHandle OH_ArkUI_Curve_CreateSpringCurve(float velocity, float mass, float stiffness, float damping)
```

**描述：**

构造弹簧曲线对象，曲线形状由弹簧参数决定，动画时长受animation、animateTo中的duration参数控制。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| float velocity | 初始速度。是由外部因素对弹性动效产生的影响参数，其目的是保证对象从之前的运动状态平滑的过渡到弹性动效。该速度是归一化速度，其值等于动画开始时的实际速度除以动画属性改变值。 |
| float mass | 质量。弹性系统的受力对象，会对弹性系统产生惯性影响。质量越大，震荡的幅度越大，恢复到平衡位置的速度越慢。取值范围：[0, +∞)。 value小于等于0时，按1处理。 |
| float stiffness | 刚度。是物体抵抗施加的力而形变的程度。在弹性系统中，刚度越大，抵抗变形的能力越强，恢复到平衡位置的速度就越快。取值范围：[0, +∞)。 value小于等于0时，按1处理。 |
| float damping | 阻尼。用于描述系统在受到扰动后震荡及衰减的情形。阻尼越大，弹性运动的震荡次数越少、震荡幅度越小。取值范围：[0, +∞)。 value小于等于0时，按1处理。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_CurveHandle | 曲线的插值对象指针。如果参数异常返回NULL。 |

#### OH\_ArkUI\_Curve\_CreateSpringMotion()

```
ArkUI_CurveHandle OH_ArkUI_Curve_CreateSpringMotion(float response, float dampingFraction, float overlapDuration)
```

**描述：**

构造弹性动画曲线对象。如果对同一对象的同一属性进行多个弹性动画，每个动画会替换掉前一个动画，并继承之前的速度。

动画时间由曲线参数决定，不受animation、animateTo中的duration参数控制。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| float response | 弹簧自然振动周期，决定弹簧复位的速度。取值范围：(0, +∞)。 参数小于等于0时，按0.55处理。 |
| float dampingFraction | 阻尼系数。大于0小于1的值为欠阻尼，运动过程中会超出目标值；等于1为临界阻尼；大于1为过阻尼，运动过程中逐渐趋于目标值。取值范围：(0, +∞)。 参数小于等于0时，按0.825处理。 |
| float overlapDuration | 弹性动画衔接时长。发生动画继承时，如果前后两个弹性动画response不一致，response参数会在overlapDuration时间内平滑过渡。取值范围：[0, +∞)。 参数小于0时，按0处理。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_CurveHandle | 曲线的插值对象指针。如果参数异常返回NULL。 |

#### OH\_ArkUI\_Curve\_CreateResponsiveSpringMotion()

```
ArkUI_CurveHandle OH_ArkUI_Curve_CreateResponsiveSpringMotion(float response, float dampingFraction, float overlapDuration)
```

**描述：**

构造弹性跟手动画曲线对象，是springMotion的一种特例，仅默认参数不同，可与springMotion混合使用。

动画时间由曲线参数决定，不受animation、animateTo中的duration参数控制。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| float response | 弹簧自然振动周期，决定弹簧复位的速度。取值范围：(0, +∞)。 参数小于等于0时，按0.15处理。 |
| float dampingFraction | 阻尼系数。大于0小于1的值为欠阻尼，运动过程中会超出目标值；等于1为临界阻尼；大于1为过阻尼，运动过程中逐渐趋于目标值。取值范围：[0, +∞)。 参数小于0时，按0.86处理。 |
| float overlapDuration | 弹性动画衔接时长。发生动画继承时，如果前后两个弹性动画response不一致，response参数会在overlapDuration时间内平滑过渡。取值范围：[0, +∞)。 参数小于0时，按0.25处理。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_CurveHandle | 曲线的插值对象指针。如果参数异常返回NULL。 |

#### OH\_ArkUI\_Curve\_CreateInterpolatingSpring()

```
ArkUI_CurveHandle OH_ArkUI_Curve_CreateInterpolatingSpring(float velocity, float mass, float stiffness, float damping)
```

**描述：**

构造插值器弹簧曲线对象，生成一条从0到1的动画曲线，实际动画值根据曲线进行插值计算。

动画时间由曲线参数决定，不受animation、animateTo中的duration参数控制。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| float velocity | 初始速度。外部因素对弹性动效产生的影响参数，目的是保证对象从之前的运动状态平滑地过渡到弹性动效。该速度是归一化速度，其值等于动画开始时的实际速度除以动画属性改变值。 |
| float mass | 质量。弹性系统的受力对象，会对弹性系统产生惯性影响。质量越大，震荡的幅度越大，恢复到平衡位置的速度越慢。取值范围：[0, +∞)。 value小于等于0时，按1处理。 |
| float stiffness | 刚度。表示物体抵抗施加的力而形变的程度。刚度越大，抵抗变形的能力越强，恢复到平衡位置的速度越快。取值范围：[0, +∞)。 value小于等于0时，按1处理。 |
| float damping | 阻尼。用于描述系统在受到扰动后震荡及衰减的情形。阻尼越大，弹性运动的震荡次数越少、震荡幅度越小。取值范围：[0, +∞)。 value小于等于0时，按1处理。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_CurveHandle | 曲线的插值对象指针。如果参数异常返回NULL。 |

#### OH\_ArkUI\_Curve\_CreateCustomCurve()

```
ArkUI_CurveHandle OH_ArkUI_Curve_CreateCustomCurve(void* userData, float (*interpolate)(float fraction, void* userdata))
```

**描述：**

构造自定义曲线对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| void* userData | 用户自定义数据。 |
| float (*interpolate)(float fraction, void* userdata) | 用户自定义的插值回调函数。fraction为动画开始时的插值输入x值。取值范围：[0,1]。返回值为曲线的y值。取值范围：[0,1]。fraction等于0时，返回值为0对应动画起点，返回不为0，动画在起点处有跳变效果。fraction等于1时，返回值为1对应动画终点，返回值不为1将导致动画的终值不是状态变量的值，出现大于或者小于状态变量值，再跳变到状态变量值的效果。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_CurveHandle | 曲线的插值对象指针。如果参数异常返回NULL。 |

#### OH\_ArkUI\_Curve\_DisposeCurve()

```
void OH_ArkUI_Curve_DisposeCurve(ArkUI_CurveHandle curveHandle)
```

**描述：**

销毁自定义曲线对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_CurveHandle curveHandle | 曲线的插值对象指针。 |

#### OH\_ArkUI\_CreateOpacityTransitionEffect()

```
ArkUI_TransitionEffect* OH_ArkUI_CreateOpacityTransitionEffect(float opacity)
```

**描述：**

创建组件转场时的透明度效果对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| float opacity | 透明度，取值范围为[0, 1]。默认值为1。设置小于0的非法值按0处理，大于1的非法值按1处理，1表示不透明，0表示完全透明。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_TransitionEffect* | 组件转场时的透明度效果对象。 |

#### OH\_ArkUI\_CreateTranslationTransitionEffect()

```
ArkUI_TransitionEffect* OH_ArkUI_CreateTranslationTransitionEffect(ArkUI_TranslationOptions* translate)
```

**描述：**

创建组件转场时的平移效果对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_TranslationOptions* translate | 组件转场时的平移参数对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_TransitionEffect* | 组件转场时的平移效果对象。如果参数异常返回NULL。 |

#### OH\_ArkUI\_CreateScaleTransitionEffect()

```
ArkUI_TransitionEffect* OH_ArkUI_CreateScaleTransitionEffect(ArkUI_ScaleOptions* scale)
```

**描述：**

创建组件转场时的缩放效果对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_ScaleOptions* scale | 组件转场时的缩放参数对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_TransitionEffect* | 组件转场时的缩放效果对象。如果参数异常返回NULL。 |

#### OH\_ArkUI\_CreateRotationTransitionEffect()

```
ArkUI_TransitionEffect* OH_ArkUI_CreateRotationTransitionEffect(ArkUI_RotationOptions* rotate)
```

**描述：**

创建组件转场时的旋转效果对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_RotationOptions* rotate | 组件转场时的旋转参数对象。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_TransitionEffect* | 组件转场时的旋转效果对象。如果参数异常返回NULL。 |

#### OH\_ArkUI\_CreateMovementTransitionEffect()

```
ArkUI_TransitionEffect* OH_ArkUI_CreateMovementTransitionEffect(ArkUI_TransitionEdge edge)
```

**描述：**

创建组件平移效果对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_TransitionEdge edge | 平移类型。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_TransitionEffect* | 组件转场时的平移效果对象。如果参数异常返回NULL。 |

#### OH\_ArkUI\_CreateAsymmetricTransitionEffect()

```
ArkUI_TransitionEffect* OH_ArkUI_CreateAsymmetricTransitionEffect(ArkUI_TransitionEffect* appear, ArkUI_TransitionEffect* disappear)
```

**描述：**

创建非对称的转场效果对象。

如果不通过该函数构造ArkUI\_TransitionEffect，则表明该效果在组件出现和消失时均生效。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_TransitionEffect* appear | 出现的转场效果。 |
| ArkUI_TransitionEffect* disappear | 消失的转场效果。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| ArkUI_TransitionEffect* | 非对称的转场效果对象。如果参数异常返回NULL。 |

#### OH\_ArkUI\_TransitionEffect\_Dispose()

```
void OH_ArkUI_TransitionEffect_Dispose(ArkUI_TransitionEffect* effect)
```

**描述：**

销毁转场效果对象。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_TransitionEffect* effect | 转场效果对象。 |

#### OH\_ArkUI\_TransitionEffect\_Combine()

```
int32_t OH_ArkUI_TransitionEffect_Combine(ArkUI_TransitionEffect* firstEffect, ArkUI_TransitionEffect* secondEffect)
```

**描述：**

设置转场效果链式组合，以形成包含多种转场效果的TransitionEffect。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_TransitionEffect* firstEffect | 转场效果。 |
| ArkUI_TransitionEffect* secondEffect | 需要链式转场效果。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |

#### OH\_ArkUI\_TransitionEffect\_SetAnimation()

```
int32_t OH_ArkUI_TransitionEffect_SetAnimation(ArkUI_TransitionEffect* effect, ArkUI_AnimateOption* animation)
```

**描述：**

设置转场效果动画参数。

如果通过OH\_ArkUI\_TransitionEffect\_Combine进行转场效果的组合，前一转场效果的动画参数也可用于后一转场效果。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| ArkUI_TransitionEffect* effect | 转场效果。 |
| ArkUI_AnimateOption* animation | 属性显示动画效果相关参数。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| int32_t | 错误码。 ARKUI_ERROR_CODE_NO_ERROR 成功。 ARKUI_ERROR_CODE_PARAM_INVALID 函数参数异常。 |