主要函数
/** 当前进方向准备就绪时,制作要播放的动画
* Make the animation to play back to when the forward direction is ready
* @param a pointer to an initialized `lv_anim_t` variable
* @param delay delay in milliseconds before starting the playback animation.重放动画
static inline void lv_anim_set_playback_delay(lv_anim_t * a, uint32_t delay)
*/
/** 当前进方向准备就绪时,制作要播放的动画
* Make the animation to play back to when the forward direction is ready
* @param a pointer to an initialized `lv_anim_t` variable
* @param delay delay in milliseconds before starting the playback animation.重放动画
static inline void lv_anim_set_playback_delay(lv_anim_t * a, uint32_t delay)
*/
/**
* Make the animation repeat itself.
* @param a pointer to an initialized `lv_anim_t` variable
* @param cnt repeat count or `LV_ANIM_REPEAT_INFINITE` for infinite repetition. 0: to disable repetition.
static inline void lv_anim_set_repeat_count(lv_anim_t * a, uint16_t cnt)
*/
static void anim_x_cb(void * var, int32_t v)
{
lv_obj_set_x(var, v);
}
static void anim_size_cb(void * var, int32_t v)
{
lv_obj_set_size(var, v, v);
}
/**
* Create a playback animation
*/
void lv_example_anim_2(void)
{
// 创建一个红色小球
// 位于左侧中部(10,0)
/**
* Change the alignment of an object and set new coordinates.
* Equivalent to:
* lv_obj_set_align(obj, align);
* lv_obj_set_pos(obj, x_ofs, y_ofs);
* @param obj pointer to an object to align
* @param align type of alignment (see 'lv_align_t' enum) `LV_ALIGN_OUT_...` can't be used.
* @param x_ofs x coordinate offset after alignment
* @param y_ofs y coordinate offset after alignment
void lv_obj_align(struct _lv_obj_t * obj, lv_align_t align, lv_coord_t x_ofs, lv_coord_t y_ofs);
*/
lv_obj_t * obj = lv_obj_create(lv_scr_act());
lv_obj_set_style_bg_color(obj, lv_palette_main(LV_PALETTE_RED), 0);
lv_obj_set_style_radius(obj, LV_RADIUS_CIRCLE, 0);
lv_obj_align(obj, LV_ALIGN_LEFT_MID, 10, 0);
lv_anim_t a;
lv_anim_init(&a);
lv_anim_set_var(&a, obj);
lv_anim_set_values(&a, 10, 50);//size的变化值
/** 当前进方向准备就绪时,制作要播放的动画
* Make the animation to play back to when the forward direction is ready
* @param a pointer to an initialized `lv_anim_t` variable
* @param delay delay in milliseconds before starting the playback animation.重放动画
static inline void lv_anim_set_playback_delay(lv_anim_t * a, uint32_t delay)
*/
lv_anim_set_time(&a, 1000);
lv_anim_set_playback_delay(&a, 1000);
lv_anim_set_playback_time(&a, 300);//回放动画用的时间
lv_anim_set_repeat_delay(&a, 500);//延迟回放
/**
* Make the animation repeat itself.
* @param a pointer to an initialized `lv_anim_t` variable
* @param cnt repeat count or `LV_ANIM_REPEAT_INFINITE` for infinite repetition. 0: to disable repetition.
static inline void lv_anim_set_repeat_count(lv_anim_t * a, uint16_t cnt)
*/
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);//一直重复动画
lv_anim_set_path_cb(&a, lv_anim_path_ease_in_out);//变化速度
/**
* Calculate the current value of an animation applying an "S" characteristic (cosine)
* @param a pointer to an animation
* @return the current value to set
int32_t lv_anim_path_ease_in_out(const lv_anim_t * a);
*/
lv_anim_set_exec_cb(&a, anim_size_cb);//对象尺寸变化
lv_anim_start(&a);
lv_anim_set_exec_cb(&a, anim_x_cb);//位置变化
lv_anim_set_values(&a, 10, 240);
lv_anim_start(&a);
}