From 18c9916231b248c96ca82869740487180c207756 Mon Sep 17 00:00:00 2001 From: "DESKTOP-H8KLN8I\\lisitao" Date: Mon, 13 May 2024 10:30:33 +0800 Subject: [PATCH] [NDK] add animitor api Signed-off-by:lisitaolisitao3@huawei.com Signed-off-by: DESKTOP-H8KLN8I\lisitao --- zh-cn/native_sdk/ace/native_animate.h | 72 +++++++++++++++++++++++++++ zh-cn/native_sdk/ace/native_type.h | 14 ++++++ 2 files changed, 86 insertions(+) diff --git a/zh-cn/native_sdk/ace/native_animate.h b/zh-cn/native_sdk/ace/native_animate.h index 70c7318a..6b86abe3 100644 --- a/zh-cn/native_sdk/ace/native_animate.h +++ b/zh-cn/native_sdk/ace/native_animate.h @@ -79,6 +79,13 @@ typedef struct { */ typedef struct ArkUI_AnimateOption ArkUI_AnimateOption; +struct ArkUI_Animator; + +typedef struct ArkUI_Animator *ArkUI_AnimatorHandle; + +typedef struct ArkUI_KeyframeAnimateOption ArkUI_KeyframeAnimateOption; + +typedef struct ArkUI_AnimatorOption ArkUI_AnimatorOption; /** * @brief ArkUI提供的Native侧动画接口集合。 @@ -100,8 +107,73 @@ typedef struct { */ int32_t (*animateTo)(ArkUI_ContextHandle context, ArkUI_AnimateOption* option, ArkUI_ContextCallback* update, ArkUI_AnimateCompleteCallback* complete); + + int32_t (*keyframeAnimateTo)(ArkUI_ContextHandle context, + ArkUI_KeyframeAnimateOption *option); + + ArkUI_AnimatorHandle (*create)(ArkUI_ContextHandle context, + ArkUI_AnimatorOption *option); + void (*dispose)(ArkUI_AnimatorHandle animator); + int32_t (*reset)(ArkUI_AnimatorHandle animator, + ArkUI_AnimatorOption *option); + int32_t (*play)(ArkUI_AnimatorHandle animator); + int32_t (*finish)(ArkUI_AnimatorHandle animator); + int32_t (*pause)(ArkUI_AnimatorHandle animator); + int32_t (*cancel)(ArkUI_AnimatorHandle animator); + int32_t (*reverse)(ArkUI_AnimatorHandle animator); } ArkUI_NativeAnimateAPI_1; +ArkUI_AnimatorOption* OH_ArkUI_AnimatorOption_Create(int32_t keyframeSize); +void OH_ArkUI_ArkUI_AnimatorOption_Dispose(ArkUI_AnimatorOption* option); + +void OH_ArkUI_AnimatorOption_SetDuration(ArkUI_AnimatorOption* option, int32_t value); +void OH_ArkUI_AnimatorOption_SetDelay(ArkUI_AnimatorOption* option, int32_t value); +void OH_ArkUI_AnimatorOption_SetIterations(ArkUI_AnimatorOption* option, int32_t value); +void OH_ArkUI_AnimatorOption_SetFill(ArkUI_AnimatorOption* option, int32_t value); +void OH_ArkUI_AnimatorOption_SetDirection(ArkUI_AnimatorOption* option, int32_t value); +void OH_ArkUI_AnimatorOption_SetEasing(ArkUI_AnimatorOption* option, int32_t value); +void OH_ArkUI_AnimatorOption_SetExpectedFrameRateRange( + ArkUI_AnimatorOption* option, ArkUI_ExpectedFrameRateRange* value); +void OH_ArkUI_AnimatorOption_SetKeyframeTime(ArkUI_AnimatorOption* option, float value, int32_t index); +void OH_ArkUI_AnimatorOption_SetKeyframeValue(ArkUI_AnimatorOption* option, float value, int32_t index); + +int32_t OH_ArkUI_AnimatorOption_GetDuration(ArkUI_AnimatorOption* option); +int32_t OH_ArkUI_AnimatorOption_GetDelay(ArkUI_AnimatorOption* option); +int32_t OH_ArkUI_AnimatorOption_GetIterations(ArkUI_AnimatorOption* option); +int32_t OH_ArkUI_AnimatorOption_GetFill(ArkUI_AnimatorOption* option); +int32_t OH_ArkUI_AnimatorOption_GetDirection(ArkUI_AnimatorOption* option); +int32_t OH_ArkUI_AnimatorOption_GetEasing(ArkUI_AnimatorOption* option); +ArkUI_ExpectedFrameRateRange* OH_ArkUI_AnimatorOption_GetExpectedFrameRateRange(ArkUI_AnimatorOption* option); +float OH_ArkUI_AnimatorOption_GetKeyframeTime(ArkUI_AnimatorOption* option, int32_t index); +float OH_ArkUI_AnimatorOption_GetKeyframeValue(ArkUI_AnimatorOption* option, int32_t index); + +void OH_ArkUI_AnimatorOption_SetOnFrame(ArkUI_AnimatorOption* option, void (*callback)(void* userData)); +void OH_ArkUI_AnimatorOption_SetOnFrameUserData(ArkUI_AnimatorOption* option, void* userData); +void OH_ArkUI_AnimatorOption_SetOnFinish(ArkUI_AnimatorOption* option, void (*callback)(void* userData)); +void OH_ArkUI_AnimatorOption_SetOnFinishUserData(ArkUI_AnimatorOption* option, void* userData); +void OH_ArkUI_AnimatorOption_SetOnCancel(ArkUI_AnimatorOption* option, void (*callback)(void* userData)); +void OH_ArkUI_AnimatorOption_SetOnCancelUserData(ArkUI_AnimatorOption* option, void* userData); +void OH_ArkUI_AnimatorOption_SetOnRepeat(ArkUI_AnimatorOption* option, void (*callback)(void* userData)); +void OH_ArkUI_AnimatorOption_SetOnRepeatUserData(ArkUI_AnimatorOption* option, void* userData); + +ArkUI_KeyframeAnimateOption* OH_ArkUI_KeyframeAnimateOption_Create(int32_t size); +void OH_ArkUI_KeyframeAnimateOption_Dispose(ArkUI_KeyframeAnimateOption* option); + +void OH_ArkUI_KeyframeAnimateOption_SetDelay(ArkUI_KeyframeAnimateOption* option, int32_t value); +void OH_ArkUI_KeyframeAnimateOption_SetIterations(ArkUI_KeyframeAnimateOption* option, int32_t value); + +void OH_ArkUI_KeyframeAnimateOption_SetDuration(ArkUI_KeyframeAnimateOption* option, int32_t value, int32_t index); +void OH_ArkUI_KeyframeAnimateOption_SetCurve(ArkUI_KeyframeAnimateOption* option, int32_t value, int32_t index); +void OH_ArkUI_KeyframeAnimateOption_SetOnFinish( + ArkUI_KeyframeAnimateOption* option, void (*onFinish)(void* userData), int32_t index); +void OH_ArkUI_KeyframeAnimateOption_SetOnFinishUserData( + ArkUI_KeyframeAnimateOption* option, void* userData, int32_t index); + +uint32_t OH_ArkUI_KeyframeAnimateOption_GetDelay(ArkUI_KeyframeAnimateOption* option); +int32_t OH_ArkUI_KeyframeAnimateOption_GetIterations(ArkUI_KeyframeAnimateOption* option); +int32_t OH_ArkUI_KeyframeAnimateOption_GetDuration(ArkUI_KeyframeAnimateOption* option, int32_t index); +int32_t OH_ArkUI_KeyframeAnimateOption_GetCurve(ArkUI_KeyframeAnimateOption* option, int32_t index); + /** * @brief 创建动画效果参数。 * diff --git a/zh-cn/native_sdk/ace/native_type.h b/zh-cn/native_sdk/ace/native_type.h index d42c0b40..5be30128 100644 --- a/zh-cn/native_sdk/ace/native_type.h +++ b/zh-cn/native_sdk/ace/native_type.h @@ -1672,6 +1672,20 @@ typedef enum { ARKUI_SWIPER_INDICATOR_TYPE_DIGIT, } ArkUI_SwiperIndicatorType; +typedef enum { + ARKUI_ANIMATION_DIRECTION_NORMAL = 0, + ARKUI_ANIMATION_DIRECTION_ALTERNATE, + ARKUI_ANIMATION_DIRECTION_REVERSE, + ARKUI_ANIMATION_DIRECTION_ALTERNATE_REVERSE, +} ArkUI_AnimationDirection; + +typedef enum { + ARKUI_ANIMATION_FILL_NONE = 0, + ARKUI_ANIMATION_FILL_FORWARDS, + ARKUI_ANIMATION_FILL_BACKWARDS, + ARKUI_ANIMATION_FILL_BOTH, +} ArkUI_AnimationFill; + /** * @brief 定义 Swiper 组件的导航指示器风格。 * -- Gitee