namespace OHOS {
-static int initialY = 132 ;
+static int initialY = 132;
static const int lineHeight = 130;
static const int iconHeight = 80;
static const int verticalOffset = 2;
-static int baseY = 214 ;
-static int startY_Unit = 252 ;
-static int startY_Value = 292 ;
+static int baseY = 214;
+static int startY_Unit = 252;
+static int startY_Value = 292;
static const int labelHeight = 40;
static const int labelInterval = 130;
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
int height_canvas = 0;
- if(canvasData.size() > 0)
- {
+ if (canvasData.size() > 0) {
height_canvas = CANVAS_SIZE;
- }
- else
- {
+ } else {
height_canvas = 0;
}
- initialY = 132 + height_canvas;
- baseY = 214 + height_canvas;
- startY_Unit = 252 + height_canvas;
- startY_Value = 292 + height_canvas;
-
+ //需要局部变量 不然会重复增加
+ int initialY_Init_Image = initialY + height_canvas;
+ int baseY_Init_Image = baseY + height_canvas;
+ int startY_Unit_Init_Image = startY_Unit + height_canvas;
+ int startY_Value_Init_Image = startY_Value + height_canvas;
+
// 初始化主图标
- InitImageView(imageIcon, 80, initialY, 54, iconHeight, "image",
+ InitImageView(imageIcon, 80, initialY_Init_Image, 54, iconHeight, "image",
WALKING_54_IMAGE);
- InitImageView(imageLine2, 97, baseY, 80, 20, "image2",
+ InitImageView(imageLine2, 97, baseY_Init_Image, 80, 20, "image2",
LINE_IMAGE); // imageLine2
- InitImageView(imageLine3, 97, baseY + lineHeight, 80, 20, "image3",
+ InitImageView(imageLine3, 97, baseY_Init_Image + lineHeight, 80, 20, "image3",
LINE_IMAGE); // imageLine3
- InitImageView(imageLine4, 97, baseY + 2 * lineHeight, 80, 20, "image4",
+ InitImageView(imageLine4, 97, baseY_Init_Image + 2 * lineHeight, 80, 20,
+ "image4",
LINE_IMAGE); // imageLine4
- InitImageView(imageLine5, 97, baseY + 3 * lineHeight, 80, 20, "image5",
+ InitImageView(imageLine5, 97, baseY_Init_Image + 3 * lineHeight, 80, 20,
+ "image5",
LINE_IMAGE); // imageLine5
bool isincludeTag = TraingModel::GetInstance()->GetSportTag();
if (isincludeTag) {
- InitImageView(imageLine6, 97, baseY + 4 * lineHeight, 80, 20, "image7",
- LINE_IMAGE);
+ InitImageView(imageLine6, 97, baseY_Init_Image + 4 * lineHeight, 80, 20,
+ "image7", LINE_IMAGE);
scrollView_->Add(imageLine6);
}
// 如果是有gps轨迹才需要加CANVAS_SIZE
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
int height_canvas = 0;
- if(canvasData.size() > 0)
- {
+ if (canvasData.size() > 0) {
height_canvas = CANVAS_SIZE;
- }
- else
- {
+ } else {
height_canvas = 0;
}
- initialY = 132 + height_canvas;
- baseY = 214 + height_canvas;
- startY_Unit = 252 + height_canvas;
- startY_Value = 292 + height_canvas;
-
+ //需要局部变量 不然会重复增加
+ int initialY_Init_Label = initialY + height_canvas;
+ int baseY_Init_Label = baseY + height_canvas;
+ int startY_Unit_Init_Label = startY_Unit + height_canvas;
+ int startY_Value_Init_Label = startY_Value + height_canvas;
+
+ //这两个是固定的
InitRollLabel(labelsport, 147, 140 + height_canvas, 240, 35, "label6",
- STR_EXERCISE_OUTDOORRUNNING, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ STR_EXERCISE_OUTDOORRUNNING, DEFAULT_VECTOR_FONT_FILENAME, 30);
InitLabel(labelduration, 146, 179 + height_canvas, 240, 40, "label7",
- "13:00:22-15:00:12", DEFAULT_VECTOR_FONT_FILENAME, 28);
+ "13:00:22-15:00:12", DEFAULT_VECTOR_FONT_FILENAME, 28);
+
// 初始化Label
//时长
- InitRollLabel(labelutime, 146, startY_Unit + labelInterval * 0, 240, 40,
- "label8", STR_TRAINING_DURATION, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labeltime, 146, startY_Value + 0 * labelInterval, 240, 60,
- "label14", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 40);
+ InitRollLabel(labelutime, 146, startY_Unit_Init_Label + labelInterval * 0,
+ 240, 40, "label8", STR_TRAINING_DURATION,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labeltime, 146, startY_Value_Init_Label + 0 * labelInterval, 240,
+ 60, "label14", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 40);
labeltime->SetTextColor(Color::Yellow());
//平均心率
- InitRollLabel(labeluheart, 146, startY_Unit + labelInterval * 1, 240, 40,
- "label9", STR_MEAN_HEART_RATE_MIN, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labelheart, 146, startY_Value + 1 * labelInterval, 240, 60,
- "label16", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
+ InitRollLabel(labeluheart, 146, startY_Unit_Init_Label + labelInterval * 1,
+ 240, 40, "label9", STR_MEAN_HEART_RATE_MIN,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labelheart, 146, startY_Value_Init_Label + 1 * labelInterval, 240,
+ 60, "label16", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelheart->SetTextColor(Color::Orange());
// 训练强度
- InitRollLabel(labelustrong, 146, startY_Unit + labelInterval * 2, 240, 40,
- "label11", STR_TRAINING_INTENSITY, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labelstrong, 146, startY_Value + 2 * labelInterval, 240, 60,
- "label17", "中等强度", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitRollLabel(labelustrong, 146, startY_Unit_Init_Label + labelInterval * 2,
+ 240, 40, "label11", STR_TRAINING_INTENSITY,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labelstrong, 146, startY_Value_Init_Label + 2 * labelInterval, 240,
+ 60, "label17", "中等强度", DEFAULT_VECTOR_FONT_FILENAME, 30);
labelstrong->SetTextColor(Color::Orange());
//卡路里
- InitRollLabel(labelucalorie, 146, startY_Unit + labelInterval * 3, 240, 40,
- "label2", STR_CALORIE_SETTING, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labelcalories, 146, startY_Value + 3 * labelInterval, 240, 60,
- "label15", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
+ InitRollLabel(labelucalorie, 146, startY_Unit_Init_Label + labelInterval * 3,
+ 240, 40, "label2", STR_CALORIE_SETTING,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labelcalories, 146, startY_Value_Init_Label + 3 * labelInterval,
+ 240, 60, "label15", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelcalories->SetTextColor(Color::Green());
//目标完成度
bool isincludeTag = TraingModel::GetInstance()->GetSportTag();
if (isincludeTag) {
- InitRollLabel(labelutag, 146, startY_Unit + labelInterval * 4, 240, 40,
- "label10", STR_GOAL_ACCOMPLISHMENT_DEGREE,
+ InitRollLabel(labelutag, 146, startY_Unit_Init_Label + labelInterval * 4,
+ 240, 40, "label10", STR_GOAL_ACCOMPLISHMENT_DEGREE,
DEFAULT_VECTOR_FONT_FILENAME, 30);
labelutag->SetTextColor(textColor);
- InitLabel(labeltag, 146, startY_Value + 4 * labelInterval, 240, 60,
- "label18", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
+ InitLabel(labeltag, 146, startY_Value_Init_Label + 4 * labelInterval, 240,
+ 60, "label18", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labeltag->SetTextColor(Color::Green());
scrollView_->Add(labelutag);
scrollView_->Add(labeltag);
scrollView_->Add(labelheart);
scrollView_->Add(labelstrong);
scrollView_->Add(labelcalories);
-
-
}
// 增加额外配置
void TraingEnddataView::BonusdataView() {
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
int height_canvas = 0;
- if(canvasData.size() > 0)
- {
+ if (canvasData.size() > 0) {
height_canvas = 400;
- }
- else
- {
+ } else {
height_canvas = 0;
}
- baseY = baseY + height_canvas;
- startY_Unit = startY_Unit + height_canvas;
- startY_Value = startY_Value + height_canvas;
-
+
+ //需要局部变量 不然会重复增加
+ int baseY_Init_Bonusdata = baseY + height_canvas;
+ int startY_Unit_Init_Bonusdata = startY_Unit + height_canvas;
+ int startY_Value_Init_Bonusdata = startY_Value + height_canvas;
+
bool isincludeTag = TraingModel::GetInstance()->GetSportTag();
int tagflge = isincludeTag ? 1 : 0;
// 初始化线条
- InitImageView(imageLine8, 97, baseY + (4 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine8, 97,
+ baseY_Init_Bonusdata + (4 + tagflge) * lineHeight, 80, 20,
"image8", LINE_IMAGE); // imageLine8
- InitImageView(imageLine9, 97, baseY + (5 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine9, 97,
+ baseY_Init_Bonusdata + (5 + tagflge) * lineHeight, 80, 20,
"image9", LINE_IMAGE); // imageLine9
- InitImageView(imageLine10, 97, baseY + (6 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine10, 97,
+ baseY_Init_Bonusdata + (6 + tagflge) * lineHeight, 80, 20,
"image10", LINE_IMAGE); // imageLine10
- InitImageView(imageLine11, 97, baseY + (7 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine11, 97,
+ baseY_Init_Bonusdata + (7 + tagflge) * lineHeight, 80, 20,
"image11", LINE_IMAGE);
- InitImageView(imageLine12, 97, baseY + (8 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine12, 97,
+ baseY_Init_Bonusdata + (8 + tagflge) * lineHeight, 80, 20,
"image7", LINE_IMAGE);
scrollView_->Add(imageLine8);
// 初始化标签
// 距离
- InitRollLabel(labelumile, 146, startY_Unit + labelInterval * (4 + tagflge),
- 240, 40, "label10", STR_RANGE_MILE,
- DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabel(labelmile, 146, startY_Value + (4 + tagflge) * labelInterval, 240,
+ InitRollLabel(labelumile, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (4 + tagflge), 240,
+ 40, "label10", STR_RANGE_MILE, DEFAULT_VECTOR_FONT_FILENAME,
+ 30);
+ InitLabel(labelmile, 146,
+ startY_Value_Init_Bonusdata + (4 + tagflge) * labelInterval, 240,
60, "label15", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelumile->SetTextColor(textColor);
labelmile->SetTextColor(Color::Blue());
// 步数
- InitRollLabel(labelusteps, 146, startY_Unit + labelInterval * (5 + tagflge),
- 240, 40, "label12", STR_STEP_NUMBER,
- DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabel(labelsteps, 146, startY_Value + (5 + tagflge) * labelInterval, 240,
+ InitRollLabel(labelusteps, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (5 + tagflge), 240,
+ 40, "label12", STR_STEP_NUMBER, DEFAULT_VECTOR_FONT_FILENAME,
+ 30);
+ InitLabel(labelsteps, 146,
+ startY_Value_Init_Bonusdata + (5 + tagflge) * labelInterval, 240,
60, "label17", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelusteps->SetTextColor(textColor);
labelsteps->SetTextColor(Color::Green());
// 平均配速
- InitRollLabel(labeluavpace, 146, startY_Unit + labelInterval * (6 + tagflge),
- 240, 40, "label2", STR_AVG_PACE, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labelavpace, 146, startY_Value + (6 + tagflge) * labelInterval, 240,
+ InitRollLabel(labeluavpace, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (6 + tagflge), 240,
+ 40, "label2", STR_AVG_PACE, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labelavpace, 146,
+ startY_Value_Init_Bonusdata + (6 + tagflge) * labelInterval, 240,
60, "label17", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labeluavpace->SetTextColor(textColor);
labelavpace->SetTextColor(Color::Green());
// 步幅
- InitRollLabel(labelustride, 146, startY_Unit + labelInterval * (7 + tagflge),
- 240, 40, "label2", STR_STEP_LENGTH,
- DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabel(labelstride, 146, startY_Value + (7 + tagflge) * labelInterval, 240,
+ InitRollLabel(labelustride, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (7 + tagflge), 240,
+ 40, "label2", STR_STEP_LENGTH, DEFAULT_VECTOR_FONT_FILENAME,
+ 30);
+ InitLabel(labelstride, 146,
+ startY_Value_Init_Bonusdata + (7 + tagflge) * labelInterval, 240,
60, "label17", "77", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelustride->SetTextColor(textColor);
labelstride->SetTextColor(Color::Green());
// 步频
- InitRollLabel(labelufreq, 146, startY_Unit + labelInterval * (8 + tagflge),
- 240, 40, "label2", STR_STEP_FREQUENCY,
- DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabel(labelfreq, 146, startY_Value + (8 + tagflge) * labelInterval, 240,
+ InitRollLabel(labelufreq, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (8 + tagflge), 240,
+ 40, "label2", STR_STEP_FREQUENCY, DEFAULT_VECTOR_FONT_FILENAME,
+ 30);
+ InitLabel(labelfreq, 146,
+ startY_Value_Init_Bonusdata + (8 + tagflge) * labelInterval, 240,
60, "label17", "154", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelufreq->SetTextColor(textColor);
labelfreq->SetTextColor(Color::Green());
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
int height_canvas = 0;
- if(canvasData.size() > 0)
- {
+ if (canvasData.size() > 0) {
height_canvas = CANVAS_SIZE;
- }
- else
- {
+ } else {
height_canvas = 0;
}
- startY_Value = startY_Value + height_canvas;
-
+ int startY_Value_Init_Exit = startY_Value + height_canvas;
+
bool isincludeTag = TraingModel::GetInstance()->GetSportTag();
int tagflge = isincludeTag ? 1 : 0;
// 初始化退出(最后 要根据前方配置设置位置)
// 是否为特殊运动
// 是否包含目标
- InitRollLabel(exitLabel, 80,
- (startY_Value + labelInterval * (8 + tagflge) + 100), 300, 40,
- "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitButtonExt(exitButton, 42,
- (startY_Value + labelInterval * (8 + tagflge) + 160), 380,
- 100, BUTTONBACK, STR_CLOSE, 30);
+ InitRollLabel(
+ exitLabel, 80,
+ (startY_Value_Init_Exit + labelInterval * (8 + tagflge) + 100), 300, 40,
+ "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitButtonExt(
+ exitButton, 42,
+ (startY_Value_Init_Exit + labelInterval * (8 + tagflge) + 160), 380,
+ 100, BUTTONBACK, STR_CLOSE, 30);
} else {
- InitRollLabel(exitLabel, 80,
- (startY_Value + labelInterval * (3 + tagflge) + 100), 300, 40,
- "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitButtonExt(exitButton, 42,
- (startY_Value + labelInterval * (3 + tagflge) + 160), 380,
- 100, BUTTONBACK, STR_CLOSE, 30);
+ InitRollLabel(
+ exitLabel, 80,
+ (startY_Value_Init_Exit + labelInterval * (3 + tagflge) + 100), 300, 40,
+ "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitButtonExt(
+ exitButton, 42,
+ (startY_Value_Init_Exit + labelInterval * (3 + tagflge) + 160), 380,
+ 100, BUTTONBACK, STR_CLOSE, 30);
}
exitLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));
scrollView_->Add(exitLabel);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Stride length set: %s\r\n",
strideStr.c_str()); // 打印步幅
}
- // 判断是否需要GPS
- if(TraingModel::GetInstance()->IsNeedGPS(enddata->sportId) == false)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "该运动项不需要GPS");
- return;
- }
- #if defined(SUPPORT_GNSS)
- //读取一下gps文件
- std::string gpsFilePath =
- TraingModel::GetInstance()->GetCanvasDataPath(enddata->starttime);
- if (!gpsFilePath.empty()) {
- if (TraingModel::GetInstance()->LoadCanvasData(gpsFilePath) == false) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gps文件加载失败");
- return;
- }
- }
-#endif
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
"TraingEnddataView data initialization complete.\r\n");
}
void TraingEnddataView::OnStart() {
+ bool isNeedGPS = TraingModel::GetInstance()->IsNeedGPS(TraingModel::GetInstance()->GetSportEvent());
+ // 判断是否需要GPS
+ if (isNeedGPS == true) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "该运动项需要GPS");
+#if defined(SUPPORT_GNSS)
+ // 读取一下gps文件 运动开始时间戳
+ SportData *enddata = TraingModel::GetInstance()->GetSportdata();
+ if (enddata != nullptr) {
+ uint32_t startTimestamp = enddata->starttime;
+ std::string gpsFilePath =TraingModel::GetInstance()->GetCanvasDataPath(startTimestamp);
+ if (!gpsFilePath.empty()) {
+ if (TraingModel::GetInstance()->LoadCanvasData(gpsFilePath) == true) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gps文件加载成功");
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gps文件加载失败");
+ }
+ }
+ }
+#endif
+ }
+
PreLoad();
InitData(); // 刷新数据
GetRootContainer()->SetTouchable(true);
GetRootContainer()->SetOnDragListener(presenter_);
- SetKeyActListener();
-
- // 判断是否需要GPS
- if(TraingModel::GetInstance()->IsNeedGPS(TraingModel::GetInstance()->GetSportEvent()) == false)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "该运动项不需要GPS");
+ // 检查是否有足够的GPS数据来绘制轨迹
+ if (isNeedGPS == false) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "该运动项不需要GPS");
return;
}
#if defined(SUPPORT_GNSS)
- ///////////////////////////gps轨迹测试//////////////////////
- // 检查是否有足够的GPS数据来绘制轨迹
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
if (canvasData.size() >= 3) {
canvas = new UICanvas();
DrawTrackSegment(canvas);
DrawMarkers(canvas);
} else {
- // 数据不足,只显示提示标签
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GPS轨迹数据不足,不绘制轨迹");
}
#endif
+ SetKeyActListener();
}
-
//////////////////////////////gps轨迹测试/////////////////////////////////////
std::vector<Marker> markers_ = {{{58, 18}, "起", Color::Green()},
seg1.color = Color::Blue();
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
-
+
//将点位赋值
for (size_t i = 0; i < canvasData.size(); ++i) {
seg1.points.push_back(canvasData[i]);
namespace OHOS {
-static int initialY = 132 ;
+static int initialY = 132;
static const int lineHeight = 130;
static const int iconHeight = 80;
static const int verticalOffset = 2;
-static int baseY = 214 ;
-static int startY_Unit = 252 ;
-static int startY_Value = 292 ;
+static int baseY = 214;
+static int startY_Unit = 252;
+static int startY_Value = 292;
static const int labelHeight = 40;
static const int labelInterval = 130;
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
int height_canvas = 0;
- if(canvasData.size() > 0)
- {
+ if (canvasData.size() > 0) {
height_canvas = CANVAS_SIZE;
- }
- else
- {
+ } else {
height_canvas = 0;
}
- initialY = 132 + height_canvas;
- baseY = 214 + height_canvas;
- startY_Unit = 252 + height_canvas;
- startY_Value = 292 + height_canvas;
-
+ //需要局部变量 不然会重复增加
+ int initialY_Init_Image = initialY + height_canvas;
+ int baseY_Init_Image = baseY + height_canvas;
+ int startY_Unit_Init_Image = startY_Unit + height_canvas;
+ int startY_Value_Init_Image = startY_Value + height_canvas;
+
// 初始化主图标
- InitImageView(imageIcon, 80, initialY, 54, iconHeight, "image",
+ InitImageView(imageIcon, 80, initialY_Init_Image, 54, iconHeight, "image",
WALKING_54_IMAGE);
- InitImageView(imageLine2, 97, baseY, 80, 20, "image2",
+ InitImageView(imageLine2, 97, baseY_Init_Image, 80, 20, "image2",
LINE_IMAGE); // imageLine2
- InitImageView(imageLine3, 97, baseY + lineHeight, 80, 20, "image3",
+ InitImageView(imageLine3, 97, baseY_Init_Image + lineHeight, 80, 20, "image3",
LINE_IMAGE); // imageLine3
- InitImageView(imageLine4, 97, baseY + 2 * lineHeight, 80, 20, "image4",
+ InitImageView(imageLine4, 97, baseY_Init_Image + 2 * lineHeight, 80, 20,
+ "image4",
LINE_IMAGE); // imageLine4
- InitImageView(imageLine5, 97, baseY + 3 * lineHeight, 80, 20, "image5",
+ InitImageView(imageLine5, 97, baseY_Init_Image + 3 * lineHeight, 80, 20,
+ "image5",
LINE_IMAGE); // imageLine5
bool isincludeTag = TraingModel::GetInstance()->GetSportTag();
if (isincludeTag) {
- InitImageView(imageLine6, 97, baseY + 4 * lineHeight, 80, 20, "image7",
- LINE_IMAGE);
+ InitImageView(imageLine6, 97, baseY_Init_Image + 4 * lineHeight, 80, 20,
+ "image7", LINE_IMAGE);
scrollView_->Add(imageLine6);
}
// 如果是有gps轨迹才需要加CANVAS_SIZE
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
int height_canvas = 0;
- if(canvasData.size() > 0)
- {
+ if (canvasData.size() > 0) {
height_canvas = CANVAS_SIZE;
- }
- else
- {
+ } else {
height_canvas = 0;
}
- initialY = 132 + height_canvas;
- baseY = 214 + height_canvas;
- startY_Unit = 252 + height_canvas;
- startY_Value = 292 + height_canvas;
-
+ //需要局部变量 不然会重复增加
+ int initialY_Init_Label = initialY + height_canvas;
+ int baseY_Init_Label = baseY + height_canvas;
+ int startY_Unit_Init_Label = startY_Unit + height_canvas;
+ int startY_Value_Init_Label = startY_Value + height_canvas;
+
+ //这两个是固定的
InitRollLabel(labelsport, 147, 140 + height_canvas, 240, 35, "label6",
- STR_EXERCISE_OUTDOORRUNNING, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ STR_EXERCISE_OUTDOORRUNNING, DEFAULT_VECTOR_FONT_FILENAME, 30);
InitLabel(labelduration, 146, 179 + height_canvas, 240, 40, "label7",
- "13:00:22-15:00:12", DEFAULT_VECTOR_FONT_FILENAME, 28);
+ "13:00:22-15:00:12", DEFAULT_VECTOR_FONT_FILENAME, 28);
+
// 初始化Label
//时长
- InitRollLabel(labelutime, 146, startY_Unit + labelInterval * 0, 240, 40,
- "label8", STR_TRAINING_DURATION, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labeltime, 146, startY_Value + 0 * labelInterval, 240, 60,
- "label14", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 40);
+ InitRollLabel(labelutime, 146, startY_Unit_Init_Label + labelInterval * 0,
+ 240, 40, "label8", STR_TRAINING_DURATION,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labeltime, 146, startY_Value_Init_Label + 0 * labelInterval, 240,
+ 60, "label14", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 40);
labeltime->SetTextColor(Color::Yellow());
//平均心率
- InitRollLabel(labeluheart, 146, startY_Unit + labelInterval * 1, 240, 40,
- "label9", STR_MEAN_HEART_RATE_MIN, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labelheart, 146, startY_Value + 1 * labelInterval, 240, 60,
- "label16", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
+ InitRollLabel(labeluheart, 146, startY_Unit_Init_Label + labelInterval * 1,
+ 240, 40, "label9", STR_MEAN_HEART_RATE_MIN,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labelheart, 146, startY_Value_Init_Label + 1 * labelInterval, 240,
+ 60, "label16", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelheart->SetTextColor(Color::Orange());
// 训练强度
- InitRollLabel(labelustrong, 146, startY_Unit + labelInterval * 2, 240, 40,
- "label11", STR_TRAINING_INTENSITY, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labelstrong, 146, startY_Value + 2 * labelInterval, 240, 60,
- "label17", "中等强度", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitRollLabel(labelustrong, 146, startY_Unit_Init_Label + labelInterval * 2,
+ 240, 40, "label11", STR_TRAINING_INTENSITY,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labelstrong, 146, startY_Value_Init_Label + 2 * labelInterval, 240,
+ 60, "label17", "中等强度", DEFAULT_VECTOR_FONT_FILENAME, 30);
labelstrong->SetTextColor(Color::Orange());
//卡路里
- InitRollLabel(labelucalorie, 146, startY_Unit + labelInterval * 3, 240, 40,
- "label2", STR_CALORIE_SETTING, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labelcalories, 146, startY_Value + 3 * labelInterval, 240, 60,
- "label15", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
+ InitRollLabel(labelucalorie, 146, startY_Unit_Init_Label + labelInterval * 3,
+ 240, 40, "label2", STR_CALORIE_SETTING,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labelcalories, 146, startY_Value_Init_Label + 3 * labelInterval,
+ 240, 60, "label15", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelcalories->SetTextColor(Color::Green());
//目标完成度
bool isincludeTag = TraingModel::GetInstance()->GetSportTag();
if (isincludeTag) {
- InitRollLabel(labelutag, 146, startY_Unit + labelInterval * 4, 240, 40,
- "label10", STR_GOAL_ACCOMPLISHMENT_DEGREE,
+ InitRollLabel(labelutag, 146, startY_Unit_Init_Label + labelInterval * 4,
+ 240, 40, "label10", STR_GOAL_ACCOMPLISHMENT_DEGREE,
DEFAULT_VECTOR_FONT_FILENAME, 30);
labelutag->SetTextColor(textColor);
- InitLabel(labeltag, 146, startY_Value + 4 * labelInterval, 240, 60,
- "label18", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
+ InitLabel(labeltag, 146, startY_Value_Init_Label + 4 * labelInterval, 240,
+ 60, "label18", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labeltag->SetTextColor(Color::Green());
scrollView_->Add(labelutag);
scrollView_->Add(labeltag);
scrollView_->Add(labelheart);
scrollView_->Add(labelstrong);
scrollView_->Add(labelcalories);
-
-
}
// 增加额外配置
void TraingEnddataView::BonusdataView() {
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
int height_canvas = 0;
- if(canvasData.size() > 0)
- {
+ if (canvasData.size() > 0) {
height_canvas = 400;
- }
- else
- {
+ } else {
height_canvas = 0;
}
- baseY = baseY + height_canvas;
- startY_Unit = startY_Unit + height_canvas;
- startY_Value = startY_Value + height_canvas;
-
+
+ //需要局部变量 不然会重复增加
+ int baseY_Init_Bonusdata = baseY + height_canvas;
+ int startY_Unit_Init_Bonusdata = startY_Unit + height_canvas;
+ int startY_Value_Init_Bonusdata = startY_Value + height_canvas;
+
bool isincludeTag = TraingModel::GetInstance()->GetSportTag();
int tagflge = isincludeTag ? 1 : 0;
// 初始化线条
- InitImageView(imageLine8, 97, baseY + (4 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine8, 97,
+ baseY_Init_Bonusdata + (4 + tagflge) * lineHeight, 80, 20,
"image8", LINE_IMAGE); // imageLine8
- InitImageView(imageLine9, 97, baseY + (5 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine9, 97,
+ baseY_Init_Bonusdata + (5 + tagflge) * lineHeight, 80, 20,
"image9", LINE_IMAGE); // imageLine9
- InitImageView(imageLine10, 97, baseY + (6 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine10, 97,
+ baseY_Init_Bonusdata + (6 + tagflge) * lineHeight, 80, 20,
"image10", LINE_IMAGE); // imageLine10
- InitImageView(imageLine11, 97, baseY + (7 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine11, 97,
+ baseY_Init_Bonusdata + (7 + tagflge) * lineHeight, 80, 20,
"image11", LINE_IMAGE);
- InitImageView(imageLine12, 97, baseY + (8 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine12, 97,
+ baseY_Init_Bonusdata + (8 + tagflge) * lineHeight, 80, 20,
"image7", LINE_IMAGE);
scrollView_->Add(imageLine8);
// 初始化标签
// 距离
- InitRollLabel(labelumile, 146, startY_Unit + labelInterval * (4 + tagflge),
- 240, 40, "label10", STR_RANGE_MILE,
- DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabel(labelmile, 146, startY_Value + (4 + tagflge) * labelInterval, 240,
+ InitRollLabel(labelumile, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (4 + tagflge), 240,
+ 40, "label10", STR_RANGE_MILE, DEFAULT_VECTOR_FONT_FILENAME,
+ 30);
+ InitLabel(labelmile, 146,
+ startY_Value_Init_Bonusdata + (4 + tagflge) * labelInterval, 240,
60, "label15", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelumile->SetTextColor(textColor);
labelmile->SetTextColor(Color::Blue());
// 步数
- InitRollLabel(labelusteps, 146, startY_Unit + labelInterval * (5 + tagflge),
- 240, 40, "label12", STR_STEP_NUMBER,
- DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabel(labelsteps, 146, startY_Value + (5 + tagflge) * labelInterval, 240,
+ InitRollLabel(labelusteps, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (5 + tagflge), 240,
+ 40, "label12", STR_STEP_NUMBER, DEFAULT_VECTOR_FONT_FILENAME,
+ 30);
+ InitLabel(labelsteps, 146,
+ startY_Value_Init_Bonusdata + (5 + tagflge) * labelInterval, 240,
60, "label17", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelusteps->SetTextColor(textColor);
labelsteps->SetTextColor(Color::Green());
// 平均配速
- InitRollLabel(labeluavpace, 146, startY_Unit + labelInterval * (6 + tagflge),
- 240, 40, "label2", STR_AVG_PACE, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labelavpace, 146, startY_Value + (6 + tagflge) * labelInterval, 240,
+ InitRollLabel(labeluavpace, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (6 + tagflge), 240,
+ 40, "label2", STR_AVG_PACE, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labelavpace, 146,
+ startY_Value_Init_Bonusdata + (6 + tagflge) * labelInterval, 240,
60, "label17", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labeluavpace->SetTextColor(textColor);
labelavpace->SetTextColor(Color::Green());
// 步幅
- InitRollLabel(labelustride, 146, startY_Unit + labelInterval * (7 + tagflge),
- 240, 40, "label2", STR_STEP_LENGTH,
- DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabel(labelstride, 146, startY_Value + (7 + tagflge) * labelInterval, 240,
+ InitRollLabel(labelustride, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (7 + tagflge), 240,
+ 40, "label2", STR_STEP_LENGTH, DEFAULT_VECTOR_FONT_FILENAME,
+ 30);
+ InitLabel(labelstride, 146,
+ startY_Value_Init_Bonusdata + (7 + tagflge) * labelInterval, 240,
60, "label17", "77", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelustride->SetTextColor(textColor);
labelstride->SetTextColor(Color::Green());
// 步频
- InitRollLabel(labelufreq, 146, startY_Unit + labelInterval * (8 + tagflge),
- 240, 40, "label2", STR_STEP_FREQUENCY,
- DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabel(labelfreq, 146, startY_Value + (8 + tagflge) * labelInterval, 240,
+ InitRollLabel(labelufreq, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (8 + tagflge), 240,
+ 40, "label2", STR_STEP_FREQUENCY, DEFAULT_VECTOR_FONT_FILENAME,
+ 30);
+ InitLabel(labelfreq, 146,
+ startY_Value_Init_Bonusdata + (8 + tagflge) * labelInterval, 240,
60, "label17", "154", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelufreq->SetTextColor(textColor);
labelfreq->SetTextColor(Color::Green());
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
int height_canvas = 0;
- if(canvasData.size() > 0)
- {
+ if (canvasData.size() > 0) {
height_canvas = CANVAS_SIZE;
- }
- else
- {
+ } else {
height_canvas = 0;
}
- startY_Value = startY_Value + height_canvas;
-
+ int startY_Value_Init_Exit = startY_Value + height_canvas;
+
bool isincludeTag = TraingModel::GetInstance()->GetSportTag();
int tagflge = isincludeTag ? 1 : 0;
// 初始化退出(最后 要根据前方配置设置位置)
// 是否为特殊运动
// 是否包含目标
- InitRollLabel(exitLabel, 80,
- (startY_Value + labelInterval * (8 + tagflge) + 100), 300, 40,
- "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitButtonExt(exitButton, 42,
- (startY_Value + labelInterval * (8 + tagflge) + 160), 380,
- 100, BUTTONBACK, STR_CLOSE, 30);
+ InitRollLabel(
+ exitLabel, 80,
+ (startY_Value_Init_Exit + labelInterval * (8 + tagflge) + 100), 300, 40,
+ "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitButtonExt(
+ exitButton, 42,
+ (startY_Value_Init_Exit + labelInterval * (8 + tagflge) + 160), 380,
+ 100, BUTTONBACK, STR_CLOSE, 30);
} else {
- InitRollLabel(exitLabel, 80,
- (startY_Value + labelInterval * (3 + tagflge) + 100), 300, 40,
- "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitButtonExt(exitButton, 42,
- (startY_Value + labelInterval * (3 + tagflge) + 160), 380,
- 100, BUTTONBACK, STR_CLOSE, 30);
+ InitRollLabel(
+ exitLabel, 80,
+ (startY_Value_Init_Exit + labelInterval * (3 + tagflge) + 100), 300, 40,
+ "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitButtonExt(
+ exitButton, 42,
+ (startY_Value_Init_Exit + labelInterval * (3 + tagflge) + 160), 380,
+ 100, BUTTONBACK, STR_CLOSE, 30);
}
exitLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));
scrollView_->Add(exitLabel);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Stride length set: %s\r\n",
strideStr.c_str()); // 打印步幅
}
- // 判断是否需要GPS
- if(TraingModel::GetInstance()->IsNeedGPS(enddata->sportId) == false)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "该运动项不需要GPS");
- return;
- }
- #if defined(SUPPORT_GNSS)
- //读取一下gps文件
- std::string gpsFilePath =
- TraingModel::GetInstance()->GetCanvasDataPath(enddata->starttime);
- if (!gpsFilePath.empty()) {
- if (TraingModel::GetInstance()->LoadCanvasData(gpsFilePath) == false) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gps文件加载失败");
- return;
- }
- }
-#endif
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
"TraingEnddataView data initialization complete.\r\n");
}
void TraingEnddataView::OnStart() {
+ bool isNeedGPS = TraingModel::GetInstance()->IsNeedGPS(TraingModel::GetInstance()->GetSportEvent());
+ // 判断是否需要GPS
+ if (isNeedGPS == true) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "该运动项需要GPS");
+#if defined(SUPPORT_GNSS)
+ // 读取一下gps文件 运动开始时间戳
+ SportData *enddata = TraingModel::GetInstance()->GetSportdata();
+ if (enddata != nullptr) {
+ uint32_t startTimestamp = enddata->starttime;
+ std::string gpsFilePath =TraingModel::GetInstance()->GetCanvasDataPath(startTimestamp);
+ if (!gpsFilePath.empty()) {
+ if (TraingModel::GetInstance()->LoadCanvasData(gpsFilePath) == true) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gps文件加载成功");
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gps文件加载失败");
+ }
+ }
+ }
+#endif
+ }
+
PreLoad();
InitData(); // 刷新数据
GetRootContainer()->SetTouchable(true);
GetRootContainer()->SetOnDragListener(presenter_);
- SetKeyActListener();
-
- // 判断是否需要GPS
- if(TraingModel::GetInstance()->IsNeedGPS(TraingModel::GetInstance()->GetSportEvent()) == false)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "该运动项不需要GPS");
+ // 检查是否有足够的GPS数据来绘制轨迹
+ if (isNeedGPS == false) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "该运动项不需要GPS");
return;
}
#if defined(SUPPORT_GNSS)
- ///////////////////////////gps轨迹测试//////////////////////
- // 检查是否有足够的GPS数据来绘制轨迹
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
if (canvasData.size() >= 3) {
canvas = new UICanvas();
DrawTrackSegment(canvas);
DrawMarkers(canvas);
} else {
- // 数据不足,只显示提示标签
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GPS轨迹数据不足,不绘制轨迹");
}
#endif
+ SetKeyActListener();
}
-
//////////////////////////////gps轨迹测试/////////////////////////////////////
std::vector<Marker> markers_ = {{{58, 18}, "起", Color::Green()},
seg1.color = Color::Blue();
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
-
+
//将点位赋值
for (size_t i = 0; i < canvasData.size(); ++i) {
seg1.points.push_back(canvasData[i]);
namespace OHOS {
-static int initialY = 132 ;
+static int initialY = 132;
static const int lineHeight = 130;
static const int iconHeight = 80;
static const int verticalOffset = 2;
-static int baseY = 214 ;
-static int startY_Unit = 252 ;
-static int startY_Value = 292 ;
+static int baseY = 214;
+static int startY_Unit = 252;
+static int startY_Value = 292;
static const int labelHeight = 40;
static const int labelInterval = 130;
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
int height_canvas = 0;
- if(canvasData.size() > 0)
- {
+ if (canvasData.size() > 0) {
height_canvas = CANVAS_SIZE;
- }
- else
- {
+ } else {
height_canvas = 0;
}
- initialY = 132 + height_canvas;
- baseY = 214 + height_canvas;
- startY_Unit = 252 + height_canvas;
- startY_Value = 292 + height_canvas;
-
+ //需要局部变量 不然会重复增加
+ int initialY_Init_Image = initialY + height_canvas;
+ int baseY_Init_Image = baseY + height_canvas;
+ int startY_Unit_Init_Image = startY_Unit + height_canvas;
+ int startY_Value_Init_Image = startY_Value + height_canvas;
+
// 初始化主图标
- InitImageView(imageIcon, 80, initialY, 54, iconHeight, "image",
+ InitImageView(imageIcon, 80, initialY_Init_Image, 54, iconHeight, "image",
WALKING_54_IMAGE);
- InitImageView(imageLine2, 97, baseY, 80, 20, "image2",
+ InitImageView(imageLine2, 97, baseY_Init_Image, 80, 20, "image2",
LINE_IMAGE); // imageLine2
- InitImageView(imageLine3, 97, baseY + lineHeight, 80, 20, "image3",
+ InitImageView(imageLine3, 97, baseY_Init_Image + lineHeight, 80, 20, "image3",
LINE_IMAGE); // imageLine3
- InitImageView(imageLine4, 97, baseY + 2 * lineHeight, 80, 20, "image4",
+ InitImageView(imageLine4, 97, baseY_Init_Image + 2 * lineHeight, 80, 20,
+ "image4",
LINE_IMAGE); // imageLine4
- InitImageView(imageLine5, 97, baseY + 3 * lineHeight, 80, 20, "image5",
+ InitImageView(imageLine5, 97, baseY_Init_Image + 3 * lineHeight, 80, 20,
+ "image5",
LINE_IMAGE); // imageLine5
bool isincludeTag = TraingModel::GetInstance()->GetSportTag();
if (isincludeTag) {
- InitImageView(imageLine6, 97, baseY + 4 * lineHeight, 80, 20, "image7",
- LINE_IMAGE);
+ InitImageView(imageLine6, 97, baseY_Init_Image + 4 * lineHeight, 80, 20,
+ "image7", LINE_IMAGE);
scrollView_->Add(imageLine6);
}
// 如果是有gps轨迹才需要加CANVAS_SIZE
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
int height_canvas = 0;
- if(canvasData.size() > 0)
- {
+ if (canvasData.size() > 0) {
height_canvas = CANVAS_SIZE;
- }
- else
- {
+ } else {
height_canvas = 0;
}
- initialY = 132 + height_canvas;
- baseY = 214 + height_canvas;
- startY_Unit = 252 + height_canvas;
- startY_Value = 292 + height_canvas;
-
+ //需要局部变量 不然会重复增加
+ int initialY_Init_Label = initialY + height_canvas;
+ int baseY_Init_Label = baseY + height_canvas;
+ int startY_Unit_Init_Label = startY_Unit + height_canvas;
+ int startY_Value_Init_Label = startY_Value + height_canvas;
+
+ //这两个是固定的
InitRollLabel(labelsport, 147, 140 + height_canvas, 240, 35, "label6",
- STR_EXERCISE_OUTDOORRUNNING, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ STR_EXERCISE_OUTDOORRUNNING, DEFAULT_VECTOR_FONT_FILENAME, 30);
InitLabel(labelduration, 146, 179 + height_canvas, 240, 40, "label7",
- "13:00:22-15:00:12", DEFAULT_VECTOR_FONT_FILENAME, 28);
+ "13:00:22-15:00:12", DEFAULT_VECTOR_FONT_FILENAME, 28);
+
// 初始化Label
//时长
- InitRollLabel(labelutime, 146, startY_Unit + labelInterval * 0, 240, 40,
- "label8", STR_TRAINING_DURATION, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labeltime, 146, startY_Value + 0 * labelInterval, 240, 60,
- "label14", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 40);
+ InitRollLabel(labelutime, 146, startY_Unit_Init_Label + labelInterval * 0,
+ 240, 40, "label8", STR_TRAINING_DURATION,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labeltime, 146, startY_Value_Init_Label + 0 * labelInterval, 240,
+ 60, "label14", "00:00:00", DEFAULT_VECTOR_FONT_FILENAME, 40);
labeltime->SetTextColor(Color::Yellow());
//平均心率
- InitRollLabel(labeluheart, 146, startY_Unit + labelInterval * 1, 240, 40,
- "label9", STR_MEAN_HEART_RATE_MIN, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labelheart, 146, startY_Value + 1 * labelInterval, 240, 60,
- "label16", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
+ InitRollLabel(labeluheart, 146, startY_Unit_Init_Label + labelInterval * 1,
+ 240, 40, "label9", STR_MEAN_HEART_RATE_MIN,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labelheart, 146, startY_Value_Init_Label + 1 * labelInterval, 240,
+ 60, "label16", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelheart->SetTextColor(Color::Orange());
// 训练强度
- InitRollLabel(labelustrong, 146, startY_Unit + labelInterval * 2, 240, 40,
- "label11", STR_TRAINING_INTENSITY, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labelstrong, 146, startY_Value + 2 * labelInterval, 240, 60,
- "label17", "中等强度", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitRollLabel(labelustrong, 146, startY_Unit_Init_Label + labelInterval * 2,
+ 240, 40, "label11", STR_TRAINING_INTENSITY,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labelstrong, 146, startY_Value_Init_Label + 2 * labelInterval, 240,
+ 60, "label17", "中等强度", DEFAULT_VECTOR_FONT_FILENAME, 30);
labelstrong->SetTextColor(Color::Orange());
//卡路里
- InitRollLabel(labelucalorie, 146, startY_Unit + labelInterval * 3, 240, 40,
- "label2", STR_CALORIE_SETTING, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labelcalories, 146, startY_Value + 3 * labelInterval, 240, 60,
- "label15", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
+ InitRollLabel(labelucalorie, 146, startY_Unit_Init_Label + labelInterval * 3,
+ 240, 40, "label2", STR_CALORIE_SETTING,
+ DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labelcalories, 146, startY_Value_Init_Label + 3 * labelInterval,
+ 240, 60, "label15", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelcalories->SetTextColor(Color::Green());
//目标完成度
bool isincludeTag = TraingModel::GetInstance()->GetSportTag();
if (isincludeTag) {
- InitRollLabel(labelutag, 146, startY_Unit + labelInterval * 4, 240, 40,
- "label10", STR_GOAL_ACCOMPLISHMENT_DEGREE,
+ InitRollLabel(labelutag, 146, startY_Unit_Init_Label + labelInterval * 4,
+ 240, 40, "label10", STR_GOAL_ACCOMPLISHMENT_DEGREE,
DEFAULT_VECTOR_FONT_FILENAME, 30);
labelutag->SetTextColor(textColor);
- InitLabel(labeltag, 146, startY_Value + 4 * labelInterval, 240, 60,
- "label18", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
+ InitLabel(labeltag, 146, startY_Value_Init_Label + 4 * labelInterval, 240,
+ 60, "label18", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labeltag->SetTextColor(Color::Green());
scrollView_->Add(labelutag);
scrollView_->Add(labeltag);
scrollView_->Add(labelheart);
scrollView_->Add(labelstrong);
scrollView_->Add(labelcalories);
-
-
}
// 增加额外配置
void TraingEnddataView::BonusdataView() {
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
int height_canvas = 0;
- if(canvasData.size() > 0)
- {
+ if (canvasData.size() > 0) {
height_canvas = 400;
- }
- else
- {
+ } else {
height_canvas = 0;
}
- baseY = baseY + height_canvas;
- startY_Unit = startY_Unit + height_canvas;
- startY_Value = startY_Value + height_canvas;
-
+
+ //需要局部变量 不然会重复增加
+ int baseY_Init_Bonusdata = baseY + height_canvas;
+ int startY_Unit_Init_Bonusdata = startY_Unit + height_canvas;
+ int startY_Value_Init_Bonusdata = startY_Value + height_canvas;
+
bool isincludeTag = TraingModel::GetInstance()->GetSportTag();
int tagflge = isincludeTag ? 1 : 0;
// 初始化线条
- InitImageView(imageLine8, 97, baseY + (4 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine8, 97,
+ baseY_Init_Bonusdata + (4 + tagflge) * lineHeight, 80, 20,
"image8", LINE_IMAGE); // imageLine8
- InitImageView(imageLine9, 97, baseY + (5 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine9, 97,
+ baseY_Init_Bonusdata + (5 + tagflge) * lineHeight, 80, 20,
"image9", LINE_IMAGE); // imageLine9
- InitImageView(imageLine10, 97, baseY + (6 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine10, 97,
+ baseY_Init_Bonusdata + (6 + tagflge) * lineHeight, 80, 20,
"image10", LINE_IMAGE); // imageLine10
- InitImageView(imageLine11, 97, baseY + (7 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine11, 97,
+ baseY_Init_Bonusdata + (7 + tagflge) * lineHeight, 80, 20,
"image11", LINE_IMAGE);
- InitImageView(imageLine12, 97, baseY + (8 + tagflge) * lineHeight, 80, 20,
+ InitImageView(imageLine12, 97,
+ baseY_Init_Bonusdata + (8 + tagflge) * lineHeight, 80, 20,
"image7", LINE_IMAGE);
scrollView_->Add(imageLine8);
// 初始化标签
// 距离
- InitRollLabel(labelumile, 146, startY_Unit + labelInterval * (4 + tagflge),
- 240, 40, "label10", STR_RANGE_MILE,
- DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabel(labelmile, 146, startY_Value + (4 + tagflge) * labelInterval, 240,
+ InitRollLabel(labelumile, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (4 + tagflge), 240,
+ 40, "label10", STR_RANGE_MILE, DEFAULT_VECTOR_FONT_FILENAME,
+ 30);
+ InitLabel(labelmile, 146,
+ startY_Value_Init_Bonusdata + (4 + tagflge) * labelInterval, 240,
60, "label15", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelumile->SetTextColor(textColor);
labelmile->SetTextColor(Color::Blue());
// 步数
- InitRollLabel(labelusteps, 146, startY_Unit + labelInterval * (5 + tagflge),
- 240, 40, "label12", STR_STEP_NUMBER,
- DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabel(labelsteps, 146, startY_Value + (5 + tagflge) * labelInterval, 240,
+ InitRollLabel(labelusteps, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (5 + tagflge), 240,
+ 40, "label12", STR_STEP_NUMBER, DEFAULT_VECTOR_FONT_FILENAME,
+ 30);
+ InitLabel(labelsteps, 146,
+ startY_Value_Init_Bonusdata + (5 + tagflge) * labelInterval, 240,
60, "label17", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelusteps->SetTextColor(textColor);
labelsteps->SetTextColor(Color::Green());
// 平均配速
- InitRollLabel(labeluavpace, 146, startY_Unit + labelInterval * (6 + tagflge),
- 240, 40, "label2", STR_AVG_PACE, DEFAULT_VECTOR_FONT_FILENAME,
- 30);
- InitLabel(labelavpace, 146, startY_Value + (6 + tagflge) * labelInterval, 240,
+ InitRollLabel(labeluavpace, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (6 + tagflge), 240,
+ 40, "label2", STR_AVG_PACE, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(labelavpace, 146,
+ startY_Value_Init_Bonusdata + (6 + tagflge) * labelInterval, 240,
60, "label17", "--", DEFAULT_VECTOR_FONT_FILENAME, 40);
labeluavpace->SetTextColor(textColor);
labelavpace->SetTextColor(Color::Green());
// 步幅
- InitRollLabel(labelustride, 146, startY_Unit + labelInterval * (7 + tagflge),
- 240, 40, "label2", STR_STEP_LENGTH,
- DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabel(labelstride, 146, startY_Value + (7 + tagflge) * labelInterval, 240,
+ InitRollLabel(labelustride, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (7 + tagflge), 240,
+ 40, "label2", STR_STEP_LENGTH, DEFAULT_VECTOR_FONT_FILENAME,
+ 30);
+ InitLabel(labelstride, 146,
+ startY_Value_Init_Bonusdata + (7 + tagflge) * labelInterval, 240,
60, "label17", "77", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelustride->SetTextColor(textColor);
labelstride->SetTextColor(Color::Green());
// 步频
- InitRollLabel(labelufreq, 146, startY_Unit + labelInterval * (8 + tagflge),
- 240, 40, "label2", STR_STEP_FREQUENCY,
- DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitLabel(labelfreq, 146, startY_Value + (8 + tagflge) * labelInterval, 240,
+ InitRollLabel(labelufreq, 146,
+ startY_Unit_Init_Bonusdata + labelInterval * (8 + tagflge), 240,
+ 40, "label2", STR_STEP_FREQUENCY, DEFAULT_VECTOR_FONT_FILENAME,
+ 30);
+ InitLabel(labelfreq, 146,
+ startY_Value_Init_Bonusdata + (8 + tagflge) * labelInterval, 240,
60, "label17", "154", DEFAULT_VECTOR_FONT_FILENAME, 40);
labelufreq->SetTextColor(textColor);
labelfreq->SetTextColor(Color::Green());
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
int height_canvas = 0;
- if(canvasData.size() > 0)
- {
+ if (canvasData.size() > 0) {
height_canvas = CANVAS_SIZE;
- }
- else
- {
+ } else {
height_canvas = 0;
}
- startY_Value = startY_Value + height_canvas;
-
+ int startY_Value_Init_Exit = startY_Value + height_canvas;
+
bool isincludeTag = TraingModel::GetInstance()->GetSportTag();
int tagflge = isincludeTag ? 1 : 0;
// 初始化退出(最后 要根据前方配置设置位置)
// 是否为特殊运动
// 是否包含目标
- InitRollLabel(exitLabel, 80,
- (startY_Value + labelInterval * (8 + tagflge) + 100), 300, 40,
- "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitButtonExt(exitButton, 42,
- (startY_Value + labelInterval * (8 + tagflge) + 160), 380,
- 100, BUTTONBACK, STR_CLOSE, 30);
+ InitRollLabel(
+ exitLabel, 80,
+ (startY_Value_Init_Exit + labelInterval * (8 + tagflge) + 100), 300, 40,
+ "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitButtonExt(
+ exitButton, 42,
+ (startY_Value_Init_Exit + labelInterval * (8 + tagflge) + 160), 380,
+ 100, BUTTONBACK, STR_CLOSE, 30);
} else {
- InitRollLabel(exitLabel, 80,
- (startY_Value + labelInterval * (3 + tagflge) + 100), 300, 40,
- "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
- InitButtonExt(exitButton, 42,
- (startY_Value + labelInterval * (3 + tagflge) + 160), 380,
- 100, BUTTONBACK, STR_CLOSE, 30);
+ InitRollLabel(
+ exitLabel, 80,
+ (startY_Value_Init_Exit + labelInterval * (3 + tagflge) + 100), 300, 40,
+ "label8", STR_MORE_APP, DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitButtonExt(
+ exitButton, 42,
+ (startY_Value_Init_Exit + labelInterval * (3 + tagflge) + 160), 380,
+ 100, BUTTONBACK, STR_CLOSE, 30);
}
exitLabel->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));
scrollView_->Add(exitLabel);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Stride length set: %s\r\n",
strideStr.c_str()); // 打印步幅
}
- // 判断是否需要GPS
- if(TraingModel::GetInstance()->IsNeedGPS(enddata->sportId) == false)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "该运动项不需要GPS");
- return;
- }
-#if defined(SUPPORT_GNSS)
- //读取一下gps文件
- std::string gpsFilePath =
- TraingModel::GetInstance()->GetCanvasDataPath(enddata->starttime);
- if (!gpsFilePath.empty()) {
- if (TraingModel::GetInstance()->LoadCanvasData(gpsFilePath) == false) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gps文件加载失败");
- return;
- }
- }
-#endif
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
"TraingEnddataView data initialization complete.\r\n");
}
void TraingEnddataView::OnStart() {
+ bool isNeedGPS = TraingModel::GetInstance()->IsNeedGPS(TraingModel::GetInstance()->GetSportEvent());
+ // 判断是否需要GPS
+ if (isNeedGPS == true) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "该运动项需要GPS");
+#if defined(SUPPORT_GNSS)
+ // 读取一下gps文件 运动开始时间戳
+ SportData *enddata = TraingModel::GetInstance()->GetSportdata();
+ if (enddata != nullptr) {
+ uint32_t startTimestamp = enddata->starttime;
+ std::string gpsFilePath =TraingModel::GetInstance()->GetCanvasDataPath(startTimestamp);
+ if (!gpsFilePath.empty()) {
+ if (TraingModel::GetInstance()->LoadCanvasData(gpsFilePath) == true) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gps文件加载成功");
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "gps文件加载失败");
+ }
+ }
+ }
+#endif
+ }
+
PreLoad();
InitData(); // 刷新数据
GetRootContainer()->SetTouchable(true);
GetRootContainer()->SetOnDragListener(presenter_);
- SetKeyActListener();
-
- // 判断是否需要GPS
- if(TraingModel::GetInstance()->IsNeedGPS(TraingModel::GetInstance()->GetSportEvent()) == false)
- {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "该运动项不需要GPS");
+ // 检查是否有足够的GPS数据来绘制轨迹
+ if (isNeedGPS == false) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "该运动项不需要GPS");
return;
}
#if defined(SUPPORT_GNSS)
- ///////////////////////////gps轨迹测试//////////////////////
- // 检查是否有足够的GPS数据来绘制轨迹
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
if (canvasData.size() >= 3) {
canvas = new UICanvas();
DrawTrackSegment(canvas);
DrawMarkers(canvas);
} else {
- // 数据不足,只显示提示标签
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GPS轨迹数据不足,不绘制轨迹");
}
#endif
+ SetKeyActListener();
}
-
//////////////////////////////gps轨迹测试/////////////////////////////////////
std::vector<Marker> markers_ = {{{58, 18}, "起", Color::Green()},
seg1.color = Color::Blue();
std::vector<Point> canvasData = TraingModel::GetInstance()->GetCanvasData();
-
+
//将点位赋值
for (size_t i = 0; i < canvasData.size(); ++i) {
seg1.points.push_back(canvasData[i]);