您当前的位置: 首页 > 

仙剑情缘

暂无认证

  • 3浏览

    0关注

    333博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

LVGL 7.11 tileview界面循环切换

仙剑情缘 发布时间:2022-07-24 20:53:41 ,浏览量:3

定义变量

static const lv_point_t valid_pos2[] = { {0, 0}, {0, 1} ,{0,2},{0,3},{0,4}, {1,2} ,{2,2},{3,2} };
static int delay_cnt;
static int  last_hor_pos;
#define VALID_POS_LEN  sizeof(valid_pos2)/sizeof(valid_pos2[0])
typedef lv_obj_t* (*tileview_elem)(lv_obj_t* scr);



lv_obj_t* create_tileview_elem_00_03(lv_obj_t* scr)
{
	
	lv_obj_t* btn = lv_btn_create(scr, NULL);
	lv_obj_align(btn, scr, LV_ALIGN_CENTER, 0, 0);
	lv_obj_t* label = lv_label_create(btn, NULL);
	lv_label_set_text_fmt(label, "Button 0_3");

	return btn;
}

lv_obj_t* create_tileview_elem_0_1(lv_obj_t* scr)
{
	lv_obj_t* btn = lv_btn_create(scr, NULL);
	lv_obj_align(btn, scr, LV_ALIGN_CENTER, 0, 0);
	lv_obj_t* label = lv_label_create(btn, NULL);
	lv_label_set_text_fmt(label, "Button 0_1");
	return btn;
}

lv_obj_t* create_tileview_elem_0_2(lv_obj_t* scr)
{
	lv_obj_t* btn = lv_btn_create(scr, NULL);
	lv_obj_align(btn, scr, LV_ALIGN_CENTER, 0, 0);
	lv_obj_t* label = lv_label_create(btn, NULL);
	lv_label_set_text_fmt(label, "Button 0_2");
	return btn;
}

lv_obj_t* create_tileview_elem_0_3(lv_obj_t* scr)
{
	lv_obj_t* btn = lv_btn_create(scr, NULL);
	lv_obj_align(btn, scr, LV_ALIGN_CENTER, 0, 0);
	lv_obj_t* label = lv_label_create(btn, NULL);
	lv_label_set_text_fmt(label, "Button 0_3");
	return btn;
}

lv_obj_t* create_tileview_elem_04_01(lv_obj_t* scr)
{
	lv_obj_t* btn = lv_btn_create(scr, NULL);
	lv_obj_align(btn, scr, LV_ALIGN_CENTER, 0, 0);
	lv_obj_t* label = lv_label_create(btn, NULL);
	lv_label_set_text_fmt(label, "Button 0_1");
	return btn;
}

lv_obj_t* create_tileview_elem_1_2(lv_obj_t* scr)
{
	lv_obj_t* btn = lv_btn_create(scr, NULL);
	lv_obj_align(btn, scr, LV_ALIGN_CENTER, 0, 0);
	lv_obj_t* label = lv_label_create(btn, NULL);
	lv_label_set_text_fmt(label, "Button 1_2");
	return btn;
}

lv_obj_t* create_tileview_elem_2_2(lv_obj_t* scr)
{
	lv_obj_t* btn = lv_btn_create(scr, NULL);
	lv_obj_align(btn, scr, LV_ALIGN_CENTER, 0, 0);
	lv_obj_t* label = lv_label_create(btn, NULL);
	lv_label_set_text_fmt(label, "Button 2_2");
	return btn;
}

lv_obj_t* create_tileview_elem_3_2(lv_obj_t* scr)
{
	lv_obj_t* btn = lv_btn_create(scr, NULL);
	lv_obj_align(btn, scr, LV_ALIGN_CENTER, 0, 0);
	lv_obj_t* label = lv_label_create(btn, NULL);
	lv_label_set_text_fmt(label, "Button 3_2");
	return btn;
}

const tileview_elem s_tileview[VALID_POS_LEN] = {
		create_tileview_elem_00_03,
		create_tileview_elem_0_1,
		create_tileview_elem_0_2,
		create_tileview_elem_0_3,
		create_tileview_elem_04_01,
		create_tileview_elem_1_2,
		create_tileview_elem_2_2,
		create_tileview_elem_3_2,
};
定时器回调函数
static void page_task(struct _lv_task_t* task)
{

	if (lv_anim_count_running())
		return;
	lv_obj_t *obj = task->user_data;

	if (delay_cnt)
	{
		if (--delay_cnt == 0) {
			lv_coord_t x, y;
			lv_tileview_get_tile_act(obj, &x, &y);
			if (x == 0 && y == 0) {
				lv_tileview_set_tile_act(obj, 0, 3, LV_ANIM_OFF); 
			}
			else
				if (x == 0 && y == last_hor_pos) {
				lv_tileview_set_tile_act(obj, 0, 1, LV_ANIM_OFF);
			}
	  }
	}
	
}
事件处理回调函数
void btn_handler(struct _lv_obj_t* obj, lv_event_t event)
{
	LV_LOG_USER("--event %d", event);
	if (event == LV_EVENT_PRESSING)
	{
		delay_cnt = 10;
	}
}
创建tileview


lv_obj_t * init_main_tileview(void)
{
	

	lv_obj_t* tv = lv_tileview_create(lv_scr_act(), NULL);
	lv_obj_set_style_local_bg_opa(tv, LV_TILEVIEW_PART_SCROLLBAR, LV_STATE_DEFAULT, LV_OPA_TRANSP);
	lv_obj_set_style_local_bg_opa(tv, LV_TILEVIEW_PART_BG, LV_STATE_DEFAULT, LV_OPA_TRANSP);
	lv_tileview_set_valid_positions(tv, valid_pos2, VALID_POS_LEN);
	lv_tileview_set_edge_flash(tv, true);
	lv_obj_set_size(tv, LV_HOR_RES, LV_VER_RES);
	lv_obj_set_pos(tv, 0, 0);
	last_hor_pos = 0;
	for (int i = 0; i  last_hor_pos)
				last_hor_pos = valid_pos2[i].y;
			
		}
	}

	LV_LOG_USER("--last_hor_pos %d", last_hor_pos);
	
	for (int i = 0; i             
关注
打赏
1658017818
查看更多评论
0.0388s