staticvoiddraw_event_cb(lv_event_t* e){lv_obj_draw_part_dsc_t* dsc =lv_event_get_draw_part_dsc(e);//获取事件对象绘制描述符if(dsc->part == LV_PART_ITEMS){//LV_PART_ITEMS绘制事件lv_obj_t* obj =lv_event_get_target(e);//获取产生事件的对象lv_chart_series_t* ser =lv_chart_get_series_next(obj,NULL);//获取第一个seruint32_t cnt =lv_chart_get_point_count(obj);//获取Ser点的总数/*Make older value more transparent*/
dsc->rect_dsc->bg_opa =(LV_OPA_COVER * dsc->id)/(cnt -1);//使用id和点的总数计算透明度/*Make smaller values blue, higher values red*/lv_coord_t* x_array =lv_chart_get_x_array(obj, ser);//获取x轴ser点数据集合lv_coord_t* y_array =lv_chart_get_y_array(obj, ser);//获取y轴ser点数据集合/*dsc->id is the tells drawing order, but we need the ID of the point being drawn.*/uint32_t start_point =lv_chart_get_x_start_point(obj, ser);// x起始点uint32_t p_act =(start_point + dsc->id)% cnt;/*Consider start point to get the index of the array*/lv_opa_t x_opa =(x_array[p_act]* LV_OPA_50)/200;lv_opa_t y_opa =(y_array[p_act]* LV_OPA_50)/1000;
dsc->rect_dsc->bg_color =lv_color_mix(lv_palette_main(LV_PALETTE_RED),lv_palette_main(LV_PALETTE_BLUE),
x_opa + y_opa);// 红蓝混色比颜色设置背景色}}