staticvoidslider_x_event_cb(lv_event_t* e){lv_obj_t* obj =lv_event_get_target(e);//获取产生事件的对象int32_t v =lv_slider_get_value(obj);//获取slider当前滑块的值lv_chart_set_zoom_x(chart, v);//X方向缩放}
Y方向slider滑动事件处理
staticvoidslider_y_event_cb(lv_event_t* e){lv_obj_t* obj =lv_event_get_target(e);//获取产生事件的对象int32_t v =lv_slider_get_value(obj);//获取slider当前滑块的值lv_chart_set_zoom_y(chart, v);//Y方向缩放}
创建CHART显示ECG
/**
* Display 1000 data points with zooming and scrolling.
* See how the chart changes drawing mode (draw only vertical lines) when
* the points get too crowded.
*/staticvoidlv_example_chart_5(void){/*Create a chart*/
chart =lv_chart_create(lv_scr_act());// 创建CHART对象lv_obj_set_size(chart,200,150);// 设置大小lv_obj_align(chart, LV_ALIGN_CENTER,-30,-30);//居中偏移-30,-30显示lv_chart_set_range(chart, LV_CHART_AXIS_PRIMARY_Y,-1000,1000);//设置Y轴范围-1000~1000/*Do not display points on the data*/lv_obj_set_style_size(chart,0, LV_PART_INDICATOR);lv_chart_series_t* ser =lv_chart_add_series(chart,lv_palette_main(LV_PALETTE_RED), LV_CHART_AXIS_PRIMARY_Y);//红色线条uint32_t pcnt =sizeof(ecg_sample)/sizeof(ecg_sample[0]);//计算ECG表格数据个数lv_chart_set_point_count(chart, pcnt);//设置ECG数据显示lv_chart_set_ext_y_array(chart, ser,(lv_coord_t*)ecg_sample);//设置用于图表的y数据点的外部数组lv_obj_t* slider;
slider =lv_slider_create(lv_scr_act());//创建slider对象,X方向缩放使用lv_slider_set_range(slider, LV_IMG_ZOOM_NONE, LV_IMG_ZOOM_NONE *10);//设置slider滑块数据范围256~256*10lv_obj_add_event_cb(slider, slider_x_event_cb, LV_EVENT_VALUE_CHANGED,NULL);//添加值已改变事件lv_obj_set_size(slider,200,10);//设置大小lv_obj_align_to(slider, chart, LV_ALIGN_OUT_BOTTOM_MID,0,20);//对齐CHART底部外框居中0,20显示
slider =lv_slider_create(lv_scr_act());//创建slider对象,Y方向缩放用lv_slider_set_range(slider, LV_IMG_ZOOM_NONE, LV_IMG_ZOOM_NONE *10);//设置slider滑块数据范围256~256*10lv_obj_add_event_cb(slider, slider_y_event_cb, LV_EVENT_VALUE_CHANGED,NULL);//添加值已改变事件lv_obj_set_size(slider,10,150);//设置大小lv_obj_align_to(slider, chart, LV_ALIGN_OUT_RIGHT_MID,20,0);//对齐CHART右边外框居中20,0显示}