开始运动直接更新时间 3227/1 3227/head 3228/target/1
authorxue <2144439972@qq.com>
Sat, 28 Feb 2026 06:23:12 +0000 (14:23 +0800)
committerxue <2144439972@qq.com>
Sat, 28 Feb 2026 06:23:12 +0000 (14:23 +0800)
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/include/TrainingDataView.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/training_card/src/TrainingDataView.cpp

index 45a6ea1..318593a 100644 (file)
@@ -59,7 +59,8 @@ private:
   UIView::OnDragListener *draglistener{nullptr};
   TrainingDataView(TrainingDataView &&) = delete;
   TrainingDataView &operator=(TrainingDataView &&) = delete;
-
+  std::string stringtime;
+  std::string GetCurrentTime();
 
   UILabelExt *curtimelabel = nullptr; // 当前时间
   UILabelExt *sportlabel = nullptr;   // 运动项目名称
index aaccfec..335c755 100644 (file)
@@ -28,6 +28,8 @@ static TrainingDataView *g_pTrainingDataView{nullptr};
 TrainingDataView::TrainingDataView() {
   SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
   g_pTrainingDataView = this;
+
+
 }
 
 TrainingDataView::~TrainingDataView() {
@@ -39,8 +41,30 @@ TrainingDataView *TrainingDataView::GetInstance() {
   return g_pTrainingDataView;
 }
 
-/* InitView:初始化界面*/
+std::string TrainingDataView::GetCurrentTime() {
+   // 获取当前时间
+   struct tm pTM;
+   time_t seconds;
+   time(&seconds);
+   localtime_r(&seconds, &pTM);
+ 
+   // 解析时间
+   int hour = pTM.tm_hour;
+   //需要判断显示的格式
+   if (uapi_dev_runtime_get_time_hour_show_model() == 12) {
+     if (pTM.tm_hour > 12)
+       hour = pTM.tm_hour - 12;
+   }
+ 
+   int minute = pTM.tm_min;
+ 
+   // 将时间和日期转换为字符串
+  return (hour < 10 ? "0" : "") + std::to_string(hour) + ":" +
+                            (minute < 10 ? "0" : "") + std::to_string(minute);
+}
+
 bool TrainingDataView ::InitPage() {
+  stringtime = GetCurrentTime();
   // 初始化Image
   InitImageView(image_progress, 13, 13, 440, 386, "image1", PROGRESS_IMAGE);
   InitImageView(image_heart, 88, 295, 50, 50, "image2", SPORT_HEARTRATE_IMAGE);
@@ -77,7 +101,7 @@ bool TrainingDataView ::InitPage() {
                DEFAULT_VECTOR_FONT_FILENAME, 30);
   sportlabel->SetTextColor(Color::Gray());
   //数字统一使用DEFAULT_VECTOR_FONT_FILENAME_EN
-  InitLabel(curtimelabel, 155, 60, 150, 50, "label1", "23:54",
+  InitLabel(curtimelabel, 155, 60, 150, 50, "label1", stringtime.c_str(),
             DEFAULT_VECTOR_FONT_FILENAME_EN, 40);
   InitLabel(timerlabel, 0, 163, 466, 150, "label3", "00:00:00",
             DEFAULT_VECTOR_FONT_FILENAME_EN, 80);