优化星历下载的UI
authorCaisking <Casiking@zhihuishixun.com>
Tue, 28 Oct 2025 09:41:23 +0000 (17:41 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Tue, 28 Oct 2025 09:41:23 +0000 (17:41 +0800)
12 files changed:
code/sdk/application/wearable/fd230/nativeapp/nativeui/ephemeris_download/include/EphemerisDownloadView.h
code/sdk/application/wearable/fd230/nativeapp/nativeui/ephemeris_download/src/EphemerisDownloadModel.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/ephemeris_download/src/EphemerisDownloadPresenter.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/ephemeris_download/src/EphemerisDownloadView.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/ephemeris_download/include/EphemerisDownloadView.h
code/sdk/application/wearable/fd272/nativeapp/nativeui/ephemeris_download/src/EphemerisDownloadModel.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/ephemeris_download/src/EphemerisDownloadPresenter.cpp
code/sdk/application/wearable/fd272/nativeapp/nativeui/ephemeris_download/src/EphemerisDownloadView.cpp
code/sdk/application/wearable/n9/nativeapp/nativeui/ephemeris_download/include/EphemerisDownloadView.h
code/sdk/application/wearable/n9/nativeapp/nativeui/ephemeris_download/src/EphemerisDownloadModel.cpp
code/sdk/application/wearable/n9/nativeapp/nativeui/ephemeris_download/src/EphemerisDownloadPresenter.cpp
code/sdk/application/wearable/n9/nativeapp/nativeui/ephemeris_download/src/EphemerisDownloadView.cpp

index ec147b3..876caf0 100644 (file)
@@ -35,11 +35,19 @@ public:
   UILabelExt *GetDownloadLabel();
   //获取有效期的label
   UILabelExt *GetValidityPeriodLabel();
+  //更新下载状态显示
+  void UpdateDownloadStatus();
+  //更新有效期显示
+  void UpdateValidityPeriod();
+  //更新下载按钮状态
+  void UpdateDownloadButton();
   
 private:
   UILabelExt *labelTitle_{nullptr};
   UILabelExt *labelStatus_{nullptr};
+  UILabelExt *labelStatusValue_{nullptr};  // 新增:状态值标签
   UILabelExt *labelValidity_{nullptr};
+  UILabelExt *labelValidityValue_{nullptr}; // 新增:有效期值标签
   UILabelButtonExt *btnDownload_{nullptr};
   UILabelButtonExt *btnBack_{nullptr};
   UILabelExt *labelNote_{nullptr};
index e67a43b..b1bfef3 100644 (file)
@@ -99,7 +99,7 @@ std::string EphemerisDownloadModel::GetEphemerisValidityPeriod() {
     int days = validityPeriod / (24 * 60);
     int hours = (validityPeriod % (24 * 60)) / 60;
     int minutes = validityPeriod % 60;
-    ephemerisValidityPeriod = "有效期: " + std::to_string(days) + "天" +
+    ephemerisValidityPeriod = std::to_string(days) + "天" +
                               std::to_string(hours) + "小时" +
                               std::to_string(minutes) + "分钟";
   } else {
index 1a1a53f..db3993c 100644 (file)
@@ -94,7 +94,7 @@ void EphemerisDownloadPresenter::UpdateDownloadStatus() {
         else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() == 0)
         {
             EphemerisDownloadView::GetInstance()->GetDownloadLabel()->SetText(
-                "下载中,正在链接网络");
+                "正在链接网络");
         }
         else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() > 0)
         {
@@ -104,7 +104,7 @@ void EphemerisDownloadPresenter::UpdateDownloadStatus() {
             {
                 progress = 100;
             }
-            std::string progress_str = "下载中,正在下载"+std::to_string(progress)+"%";
+            std::string progress_str = "正在下载"+std::to_string(progress)+"%";
             EphemerisDownloadView::GetInstance()->GetDownloadLabel()->SetText(progress_str.c_str());
         }
         else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() == 10)
index 235e2c3..ba6efdb 100644 (file)
@@ -6,6 +6,8 @@
 #include "ui_resource_string.h"
 #include "components/ui_scroll_view.h"
 #include "wearable_log.h"
+#include "UiConfig.h"
+#include "uicomponents/UIComponents.h"
 
 namespace OHOS {
 
@@ -28,11 +30,21 @@ EphemerisDownloadView::~EphemerisDownloadView() {
         delete labelStatus_;
         labelStatus_ = nullptr;     
     }
+    if (labelStatusValue_!=nullptr)
+    {
+        delete labelStatusValue_;
+        labelStatusValue_ = nullptr;
+    }
     if (labelValidity_!=nullptr)
     {
         delete labelValidity_;
         labelValidity_ = nullptr;
     }
+    if (labelValidityValue_!=nullptr)
+    {
+        delete labelValidityValue_;
+        labelValidityValue_ = nullptr;
+    }
     if (btnDownload_!=nullptr)
     {
         delete btnDownload_;
@@ -70,116 +82,169 @@ EphemerisDownloadView *EphemerisDownloadView::GetInstance() {
 }
 
 bool EphemerisDownloadView::EphemerisDownloadInit() {
-    // 初始化标题
+    // 初始化标题 - 居中显示
     labelTitle_ = new UILabelExt();
     if (labelTitle_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelTitle_ new failed");
         return false;
     }
-    labelTitle_->SetPosition(83, 50, 350, 60);
+    labelTitle_->SetPosition(83, 50, 300, 50);
     labelTitle_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-    labelTitle_->SetText("下载星历");
+    labelTitle_->SetText("星历下载");
     labelTitle_->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
     labelTitle_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+    labelTitle_->SetTextColor(Color::White());
     AddViewToRootContainer(labelTitle_);
 
-    // 初始化状态标签
+    // 初始化状态标签 - 左对齐,带圆点前缀
     labelStatus_ = new UILabelExt();
     if (labelStatus_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatus_ new failed");
         return false;
     }
-    labelStatus_->SetPosition(90, 120, 300, 40);
-    labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
-    //如果有效期大于0,则显示下载成功
-    if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
-    {
-        labelStatus_->SetText("数据有效");
-    }
-    else
-    {
-        labelStatus_->SetText("未下载");
-    }
-    labelStatus_->SetTextColor(Color::Yellow());
+    labelStatus_->SetPosition(50, 120, 360, 70);
+    labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+    labelStatus_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    labelStatus_->SetText("● 下载状态:");
+    labelStatus_->SetTextColor(Color::Yellow());//黄色
     AddViewToRootContainer(labelStatus_);
 
-    // 初始化有效期标签
+    // 初始化状态值标签 - 显示具体状态
+    labelStatusValue_ = new UILabelExt();
+    if (labelStatusValue_ == nullptr) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatusValue_ new failed");
+        return false;
+    }
+    labelStatusValue_->SetPosition(220, 120, 360, 70);
+    labelStatusValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+    labelStatusValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    AddViewToRootContainer(labelStatusValue_);
+
+    // 初始化有效期标签 - 左对齐,带圆点前缀
     labelValidity_ = new UILabelExt();
     if (labelValidity_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidity_ new failed");
         return false;
     }
-    labelValidity_->SetPosition(90, 170, 350, 40);
-    labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
-    labelValidity_->SetText("有效期: 无");
-    labelValidity_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));
+    labelValidity_->SetPosition(50, 170, 360, 70);
+    labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+    labelValidity_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    labelValidity_->SetText("● 有效期:");
+    labelValidity_->SetTextColor(Color::Green());//绿色
     AddViewToRootContainer(labelValidity_);
 
-    // 初始化下载按钮
-    btnDownload_ = new UILabelButtonExt();
-    if (btnDownload_ == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btnDownload_ new failed");
-        return false;
-    }
-    btnDownload_->SetPosition(50, 250, 300, 60);
-    btnDownload_->SetText("下载");
-    btnDownload_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
-    btnDownload_->SetViewId(DOWNLOAD_ID);
-    btnDownload_->SetOnClickListener(presenter_);
-
-    //如果有效期大于0,则不能下载 下载按键显示灰色;否则显示绿色
-    if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
-    {
-        btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
-        btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
-    }
-    else
-    {
-        btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Blue().full);
-        btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
-    }
-    
-    AddViewToRootContainer(btnDownload_);
-
-    // 初始化返回按钮
-    btnBack_ = new UILabelButtonExt();
-    if (btnBack_ == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btnBack_ new failed");
+    // 初始化有效期值标签 - 显示具体有效期
+    labelValidityValue_ = new UILabelExt();
+    if (labelValidityValue_ == nullptr) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidityValue_ new failed");
         return false;
     }
-    btnBack_->SetPosition(50, 350, 300, 60);
-    btnBack_->SetText("返回");
-    btnBack_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
-    btnBack_->SetViewId(BACK_ID);
-    btnBack_->SetOnClickListener(presenter_);
-    AddViewToRootContainer(btnBack_);
+    labelValidityValue_->SetPosition(220, 170, 360, 70);
+    labelValidityValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+    labelValidityValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    AddViewToRootContainer(labelValidityValue_);
 
-    // 初始化说明标签
+    // 初始化说明标签 - 居中显示,灰色文字
     labelNote_ = new UILabelExt();
     if (labelNote_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelNote_ new failed");
         return false;
     }
-    labelNote_->SetPosition(80, 420, 360, 40);
-    labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 18);
-    labelNote_->SetText("星历数据用于提高GPS定位精度");
-    labelNote_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x5f));
+    labelNote_->SetPosition(50, 230, 366, 80);
+    labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
+    labelNote_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+    labelNote_->SetText("注:请打开4G,需要在网络连接状态下才可以下载");
+    labelNote_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff)); // 灰色
+    //修改为靠左对齐
+    labelNote_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
     AddViewToRootContainer(labelNote_);
 
-    //更新有效期
-    EphemerisDownloadView::GetInstance()->GetValidityPeriodLabel()->SetText(
-        EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod().c_str());
+    InitButtonExt(btnDownload_, 58, 320, 170, 90, DOWNLOAD_ID, STR_EPHEMERIS_DOWNLOAD, 30);
+    btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); // 设置按键颜色
+    btnDownload_->SetText("下载");
+    btnDownload_->SetOnClickListener(presenter_);
+    InitButtonExt(btnBack_, 238, 320, 170, 90, BACK_ID, STR_CANCEL, 30);
+    btnBack_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF8A36); // 设置按键颜色
+    btnBack_->SetOnClickListener(presenter_);
+    AddViewToRootContainer(btnDownload_);
+    AddViewToRootContainer(btnBack_);
+
+    // 初始化完成后更新所有状态
+    UpdateDownloadStatus();
+    UpdateValidityPeriod();
+    UpdateDownloadButton();
   
 
     return true;
 }
 
 UILabelExt *EphemerisDownloadView::GetDownloadLabel() {
-    return labelStatus_;
+    return labelStatusValue_;
 }
 
 UILabelExt *EphemerisDownloadView::GetValidityPeriodLabel() {
-    return labelValidity_;
+    return labelValidityValue_;
+}
+
+// 更新下载状态显示
+void EphemerisDownloadView::UpdateDownloadStatus() {
+    if (labelStatusValue_ == nullptr) return;
+    
+    auto status = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus();
+    int progress = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress();
+    
+    switch (status) {
+        case EphemerisDownloadStatus::NOT_DOWNLOADED:
+            labelStatusValue_->SetText("未下载");
+            break;
+        case EphemerisDownloadStatus::DOWNLOADING:
+            labelStatusValue_->SetText(("下载中 " + std::to_string(progress) + "%").c_str());
+            break;
+        case EphemerisDownloadStatus::DOWNLOADED:
+            labelStatusValue_->SetText("已完成");
+            break;
+        case EphemerisDownloadStatus::FAILED:
+            labelStatusValue_->SetText("下载失败");
+            break;
+    }
+}
+
+// 更新有效期显示
+void EphemerisDownloadView::UpdateValidityPeriod() {
+    if (labelValidityValue_ == nullptr) return;
+    
+    std::string period = EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod();
+    if (period.empty()) {
+        labelValidityValue_->SetText("无数据");
+    } else {
+        labelValidityValue_->SetText(period.c_str());
+    }
+}
+
+// 更新下载按钮状态
+void EphemerisDownloadView::UpdateDownloadButton() {
+    if (btnDownload_ == nullptr) return;
+    
+    auto status = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus();
+    
+    switch (status) {
+        case EphemerisDownloadStatus::NOT_DOWNLOADED:
+        case EphemerisDownloadStatus::FAILED:
+            btnDownload_->SetText("未下载");
+            btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xff, 0x8c, 0x00, 0xff).full); // 橙色
+            btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xcc, 0x70, 0x00, 0xff).full, UIButton::PRESSED);
+            break;
+        case EphemerisDownloadStatus::DOWNLOADING:
+            btnDownload_->SetText("下载中");
+            btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff).full); // 灰色
+            btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
+            break;
+        case EphemerisDownloadStatus::DOWNLOADED:
+            btnDownload_->SetText("已下载");
+            btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff).full); // 灰色
+            btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
+            break;
+    }
 }
 
 } // namespace OHOS
index ec147b3..876caf0 100644 (file)
@@ -35,11 +35,19 @@ public:
   UILabelExt *GetDownloadLabel();
   //获取有效期的label
   UILabelExt *GetValidityPeriodLabel();
+  //更新下载状态显示
+  void UpdateDownloadStatus();
+  //更新有效期显示
+  void UpdateValidityPeriod();
+  //更新下载按钮状态
+  void UpdateDownloadButton();
   
 private:
   UILabelExt *labelTitle_{nullptr};
   UILabelExt *labelStatus_{nullptr};
+  UILabelExt *labelStatusValue_{nullptr};  // 新增:状态值标签
   UILabelExt *labelValidity_{nullptr};
+  UILabelExt *labelValidityValue_{nullptr}; // 新增:有效期值标签
   UILabelButtonExt *btnDownload_{nullptr};
   UILabelButtonExt *btnBack_{nullptr};
   UILabelExt *labelNote_{nullptr};
index e67a43b..b1bfef3 100644 (file)
@@ -99,7 +99,7 @@ std::string EphemerisDownloadModel::GetEphemerisValidityPeriod() {
     int days = validityPeriod / (24 * 60);
     int hours = (validityPeriod % (24 * 60)) / 60;
     int minutes = validityPeriod % 60;
-    ephemerisValidityPeriod = "有效期: " + std::to_string(days) + "天" +
+    ephemerisValidityPeriod = std::to_string(days) + "天" +
                               std::to_string(hours) + "小时" +
                               std::to_string(minutes) + "分钟";
   } else {
index 1a1a53f..db3993c 100644 (file)
@@ -94,7 +94,7 @@ void EphemerisDownloadPresenter::UpdateDownloadStatus() {
         else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() == 0)
         {
             EphemerisDownloadView::GetInstance()->GetDownloadLabel()->SetText(
-                "下载中,正在链接网络");
+                "正在链接网络");
         }
         else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() > 0)
         {
@@ -104,7 +104,7 @@ void EphemerisDownloadPresenter::UpdateDownloadStatus() {
             {
                 progress = 100;
             }
-            std::string progress_str = "下载中,正在下载"+std::to_string(progress)+"%";
+            std::string progress_str = "正在下载"+std::to_string(progress)+"%";
             EphemerisDownloadView::GetInstance()->GetDownloadLabel()->SetText(progress_str.c_str());
         }
         else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() == 10)
index 235e2c3..ba6efdb 100644 (file)
@@ -6,6 +6,8 @@
 #include "ui_resource_string.h"
 #include "components/ui_scroll_view.h"
 #include "wearable_log.h"
+#include "UiConfig.h"
+#include "uicomponents/UIComponents.h"
 
 namespace OHOS {
 
@@ -28,11 +30,21 @@ EphemerisDownloadView::~EphemerisDownloadView() {
         delete labelStatus_;
         labelStatus_ = nullptr;     
     }
+    if (labelStatusValue_!=nullptr)
+    {
+        delete labelStatusValue_;
+        labelStatusValue_ = nullptr;
+    }
     if (labelValidity_!=nullptr)
     {
         delete labelValidity_;
         labelValidity_ = nullptr;
     }
+    if (labelValidityValue_!=nullptr)
+    {
+        delete labelValidityValue_;
+        labelValidityValue_ = nullptr;
+    }
     if (btnDownload_!=nullptr)
     {
         delete btnDownload_;
@@ -70,116 +82,169 @@ EphemerisDownloadView *EphemerisDownloadView::GetInstance() {
 }
 
 bool EphemerisDownloadView::EphemerisDownloadInit() {
-    // 初始化标题
+    // 初始化标题 - 居中显示
     labelTitle_ = new UILabelExt();
     if (labelTitle_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelTitle_ new failed");
         return false;
     }
-    labelTitle_->SetPosition(83, 50, 350, 60);
+    labelTitle_->SetPosition(83, 50, 300, 50);
     labelTitle_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-    labelTitle_->SetText("下载星历");
+    labelTitle_->SetText("星历下载");
     labelTitle_->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
     labelTitle_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+    labelTitle_->SetTextColor(Color::White());
     AddViewToRootContainer(labelTitle_);
 
-    // 初始化状态标签
+    // 初始化状态标签 - 左对齐,带圆点前缀
     labelStatus_ = new UILabelExt();
     if (labelStatus_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatus_ new failed");
         return false;
     }
-    labelStatus_->SetPosition(90, 120, 300, 40);
-    labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
-    //如果有效期大于0,则显示下载成功
-    if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
-    {
-        labelStatus_->SetText("数据有效");
-    }
-    else
-    {
-        labelStatus_->SetText("未下载");
-    }
-    labelStatus_->SetTextColor(Color::Yellow());
+    labelStatus_->SetPosition(50, 120, 360, 70);
+    labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+    labelStatus_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    labelStatus_->SetText("● 下载状态:");
+    labelStatus_->SetTextColor(Color::Yellow());//黄色
     AddViewToRootContainer(labelStatus_);
 
-    // 初始化有效期标签
+    // 初始化状态值标签 - 显示具体状态
+    labelStatusValue_ = new UILabelExt();
+    if (labelStatusValue_ == nullptr) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatusValue_ new failed");
+        return false;
+    }
+    labelStatusValue_->SetPosition(220, 120, 360, 70);
+    labelStatusValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+    labelStatusValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    AddViewToRootContainer(labelStatusValue_);
+
+    // 初始化有效期标签 - 左对齐,带圆点前缀
     labelValidity_ = new UILabelExt();
     if (labelValidity_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidity_ new failed");
         return false;
     }
-    labelValidity_->SetPosition(90, 170, 350, 40);
-    labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
-    labelValidity_->SetText("有效期: 无");
-    labelValidity_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));
+    labelValidity_->SetPosition(50, 170, 360, 70);
+    labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+    labelValidity_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    labelValidity_->SetText("● 有效期:");
+    labelValidity_->SetTextColor(Color::Green());//绿色
     AddViewToRootContainer(labelValidity_);
 
-    // 初始化下载按钮
-    btnDownload_ = new UILabelButtonExt();
-    if (btnDownload_ == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btnDownload_ new failed");
-        return false;
-    }
-    btnDownload_->SetPosition(50, 250, 300, 60);
-    btnDownload_->SetText("下载");
-    btnDownload_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
-    btnDownload_->SetViewId(DOWNLOAD_ID);
-    btnDownload_->SetOnClickListener(presenter_);
-
-    //如果有效期大于0,则不能下载 下载按键显示灰色;否则显示绿色
-    if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
-    {
-        btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
-        btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
-    }
-    else
-    {
-        btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Blue().full);
-        btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
-    }
-    
-    AddViewToRootContainer(btnDownload_);
-
-    // 初始化返回按钮
-    btnBack_ = new UILabelButtonExt();
-    if (btnBack_ == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btnBack_ new failed");
+    // 初始化有效期值标签 - 显示具体有效期
+    labelValidityValue_ = new UILabelExt();
+    if (labelValidityValue_ == nullptr) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidityValue_ new failed");
         return false;
     }
-    btnBack_->SetPosition(50, 350, 300, 60);
-    btnBack_->SetText("返回");
-    btnBack_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
-    btnBack_->SetViewId(BACK_ID);
-    btnBack_->SetOnClickListener(presenter_);
-    AddViewToRootContainer(btnBack_);
+    labelValidityValue_->SetPosition(220, 170, 360, 70);
+    labelValidityValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+    labelValidityValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    AddViewToRootContainer(labelValidityValue_);
 
-    // 初始化说明标签
+    // 初始化说明标签 - 居中显示,灰色文字
     labelNote_ = new UILabelExt();
     if (labelNote_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelNote_ new failed");
         return false;
     }
-    labelNote_->SetPosition(80, 420, 360, 40);
-    labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 18);
-    labelNote_->SetText("星历数据用于提高GPS定位精度");
-    labelNote_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x5f));
+    labelNote_->SetPosition(50, 230, 366, 80);
+    labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
+    labelNote_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+    labelNote_->SetText("注:请打开4G,需要在网络连接状态下才可以下载");
+    labelNote_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff)); // 灰色
+    //修改为靠左对齐
+    labelNote_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
     AddViewToRootContainer(labelNote_);
 
-    //更新有效期
-    EphemerisDownloadView::GetInstance()->GetValidityPeriodLabel()->SetText(
-        EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod().c_str());
+    InitButtonExt(btnDownload_, 58, 320, 170, 90, DOWNLOAD_ID, STR_EPHEMERIS_DOWNLOAD, 30);
+    btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); // 设置按键颜色
+    btnDownload_->SetText("下载");
+    btnDownload_->SetOnClickListener(presenter_);
+    InitButtonExt(btnBack_, 238, 320, 170, 90, BACK_ID, STR_CANCEL, 30);
+    btnBack_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF8A36); // 设置按键颜色
+    btnBack_->SetOnClickListener(presenter_);
+    AddViewToRootContainer(btnDownload_);
+    AddViewToRootContainer(btnBack_);
+
+    // 初始化完成后更新所有状态
+    UpdateDownloadStatus();
+    UpdateValidityPeriod();
+    UpdateDownloadButton();
   
 
     return true;
 }
 
 UILabelExt *EphemerisDownloadView::GetDownloadLabel() {
-    return labelStatus_;
+    return labelStatusValue_;
 }
 
 UILabelExt *EphemerisDownloadView::GetValidityPeriodLabel() {
-    return labelValidity_;
+    return labelValidityValue_;
+}
+
+// 更新下载状态显示
+void EphemerisDownloadView::UpdateDownloadStatus() {
+    if (labelStatusValue_ == nullptr) return;
+    
+    auto status = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus();
+    int progress = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress();
+    
+    switch (status) {
+        case EphemerisDownloadStatus::NOT_DOWNLOADED:
+            labelStatusValue_->SetText("未下载");
+            break;
+        case EphemerisDownloadStatus::DOWNLOADING:
+            labelStatusValue_->SetText(("下载中 " + std::to_string(progress) + "%").c_str());
+            break;
+        case EphemerisDownloadStatus::DOWNLOADED:
+            labelStatusValue_->SetText("已完成");
+            break;
+        case EphemerisDownloadStatus::FAILED:
+            labelStatusValue_->SetText("下载失败");
+            break;
+    }
+}
+
+// 更新有效期显示
+void EphemerisDownloadView::UpdateValidityPeriod() {
+    if (labelValidityValue_ == nullptr) return;
+    
+    std::string period = EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod();
+    if (period.empty()) {
+        labelValidityValue_->SetText("无数据");
+    } else {
+        labelValidityValue_->SetText(period.c_str());
+    }
+}
+
+// 更新下载按钮状态
+void EphemerisDownloadView::UpdateDownloadButton() {
+    if (btnDownload_ == nullptr) return;
+    
+    auto status = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus();
+    
+    switch (status) {
+        case EphemerisDownloadStatus::NOT_DOWNLOADED:
+        case EphemerisDownloadStatus::FAILED:
+            btnDownload_->SetText("未下载");
+            btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xff, 0x8c, 0x00, 0xff).full); // 橙色
+            btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xcc, 0x70, 0x00, 0xff).full, UIButton::PRESSED);
+            break;
+        case EphemerisDownloadStatus::DOWNLOADING:
+            btnDownload_->SetText("下载中");
+            btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff).full); // 灰色
+            btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
+            break;
+        case EphemerisDownloadStatus::DOWNLOADED:
+            btnDownload_->SetText("已下载");
+            btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff).full); // 灰色
+            btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
+            break;
+    }
 }
 
 } // namespace OHOS
index ec147b3..876caf0 100644 (file)
@@ -35,11 +35,19 @@ public:
   UILabelExt *GetDownloadLabel();
   //获取有效期的label
   UILabelExt *GetValidityPeriodLabel();
+  //更新下载状态显示
+  void UpdateDownloadStatus();
+  //更新有效期显示
+  void UpdateValidityPeriod();
+  //更新下载按钮状态
+  void UpdateDownloadButton();
   
 private:
   UILabelExt *labelTitle_{nullptr};
   UILabelExt *labelStatus_{nullptr};
+  UILabelExt *labelStatusValue_{nullptr};  // 新增:状态值标签
   UILabelExt *labelValidity_{nullptr};
+  UILabelExt *labelValidityValue_{nullptr}; // 新增:有效期值标签
   UILabelButtonExt *btnDownload_{nullptr};
   UILabelButtonExt *btnBack_{nullptr};
   UILabelExt *labelNote_{nullptr};
index e67a43b..b1bfef3 100644 (file)
@@ -99,7 +99,7 @@ std::string EphemerisDownloadModel::GetEphemerisValidityPeriod() {
     int days = validityPeriod / (24 * 60);
     int hours = (validityPeriod % (24 * 60)) / 60;
     int minutes = validityPeriod % 60;
-    ephemerisValidityPeriod = "有效期: " + std::to_string(days) + "天" +
+    ephemerisValidityPeriod = std::to_string(days) + "天" +
                               std::to_string(hours) + "小时" +
                               std::to_string(minutes) + "分钟";
   } else {
index 1a1a53f..db3993c 100644 (file)
@@ -94,7 +94,7 @@ void EphemerisDownloadPresenter::UpdateDownloadStatus() {
         else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() == 0)
         {
             EphemerisDownloadView::GetInstance()->GetDownloadLabel()->SetText(
-                "下载中,正在链接网络");
+                "正在链接网络");
         }
         else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() > 0)
         {
@@ -104,7 +104,7 @@ void EphemerisDownloadPresenter::UpdateDownloadStatus() {
             {
                 progress = 100;
             }
-            std::string progress_str = "下载中,正在下载"+std::to_string(progress)+"%";
+            std::string progress_str = "正在下载"+std::to_string(progress)+"%";
             EphemerisDownloadView::GetInstance()->GetDownloadLabel()->SetText(progress_str.c_str());
         }
         else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() == 10)
index 235e2c3..ba6efdb 100644 (file)
@@ -6,6 +6,8 @@
 #include "ui_resource_string.h"
 #include "components/ui_scroll_view.h"
 #include "wearable_log.h"
+#include "UiConfig.h"
+#include "uicomponents/UIComponents.h"
 
 namespace OHOS {
 
@@ -28,11 +30,21 @@ EphemerisDownloadView::~EphemerisDownloadView() {
         delete labelStatus_;
         labelStatus_ = nullptr;     
     }
+    if (labelStatusValue_!=nullptr)
+    {
+        delete labelStatusValue_;
+        labelStatusValue_ = nullptr;
+    }
     if (labelValidity_!=nullptr)
     {
         delete labelValidity_;
         labelValidity_ = nullptr;
     }
+    if (labelValidityValue_!=nullptr)
+    {
+        delete labelValidityValue_;
+        labelValidityValue_ = nullptr;
+    }
     if (btnDownload_!=nullptr)
     {
         delete btnDownload_;
@@ -70,116 +82,169 @@ EphemerisDownloadView *EphemerisDownloadView::GetInstance() {
 }
 
 bool EphemerisDownloadView::EphemerisDownloadInit() {
-    // 初始化标题
+    // 初始化标题 - 居中显示
     labelTitle_ = new UILabelExt();
     if (labelTitle_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelTitle_ new failed");
         return false;
     }
-    labelTitle_->SetPosition(83, 50, 350, 60);
+    labelTitle_->SetPosition(83, 50, 300, 50);
     labelTitle_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-    labelTitle_->SetText("下载星历");
+    labelTitle_->SetText("星历下载");
     labelTitle_->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
     labelTitle_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+    labelTitle_->SetTextColor(Color::White());
     AddViewToRootContainer(labelTitle_);
 
-    // 初始化状态标签
+    // 初始化状态标签 - 左对齐,带圆点前缀
     labelStatus_ = new UILabelExt();
     if (labelStatus_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatus_ new failed");
         return false;
     }
-    labelStatus_->SetPosition(90, 120, 300, 40);
-    labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
-    //如果有效期大于0,则显示下载成功
-    if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
-    {
-        labelStatus_->SetText("数据有效");
-    }
-    else
-    {
-        labelStatus_->SetText("未下载");
-    }
-    labelStatus_->SetTextColor(Color::Yellow());
+    labelStatus_->SetPosition(50, 120, 360, 70);
+    labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+    labelStatus_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    labelStatus_->SetText("● 下载状态:");
+    labelStatus_->SetTextColor(Color::Yellow());//黄色
     AddViewToRootContainer(labelStatus_);
 
-    // 初始化有效期标签
+    // 初始化状态值标签 - 显示具体状态
+    labelStatusValue_ = new UILabelExt();
+    if (labelStatusValue_ == nullptr) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatusValue_ new failed");
+        return false;
+    }
+    labelStatusValue_->SetPosition(220, 120, 360, 70);
+    labelStatusValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+    labelStatusValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    AddViewToRootContainer(labelStatusValue_);
+
+    // 初始化有效期标签 - 左对齐,带圆点前缀
     labelValidity_ = new UILabelExt();
     if (labelValidity_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidity_ new failed");
         return false;
     }
-    labelValidity_->SetPosition(90, 170, 350, 40);
-    labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
-    labelValidity_->SetText("有效期: 无");
-    labelValidity_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));
+    labelValidity_->SetPosition(50, 170, 360, 70);
+    labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+    labelValidity_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    labelValidity_->SetText("● 有效期:");
+    labelValidity_->SetTextColor(Color::Green());//绿色
     AddViewToRootContainer(labelValidity_);
 
-    // 初始化下载按钮
-    btnDownload_ = new UILabelButtonExt();
-    if (btnDownload_ == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btnDownload_ new failed");
-        return false;
-    }
-    btnDownload_->SetPosition(50, 250, 300, 60);
-    btnDownload_->SetText("下载");
-    btnDownload_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
-    btnDownload_->SetViewId(DOWNLOAD_ID);
-    btnDownload_->SetOnClickListener(presenter_);
-
-    //如果有效期大于0,则不能下载 下载按键显示灰色;否则显示绿色
-    if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
-    {
-        btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
-        btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
-    }
-    else
-    {
-        btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Blue().full);
-        btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
-    }
-    
-    AddViewToRootContainer(btnDownload_);
-
-    // 初始化返回按钮
-    btnBack_ = new UILabelButtonExt();
-    if (btnBack_ == nullptr) {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btnBack_ new failed");
+    // 初始化有效期值标签 - 显示具体有效期
+    labelValidityValue_ = new UILabelExt();
+    if (labelValidityValue_ == nullptr) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidityValue_ new failed");
         return false;
     }
-    btnBack_->SetPosition(50, 350, 300, 60);
-    btnBack_->SetText("返回");
-    btnBack_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
-    btnBack_->SetViewId(BACK_ID);
-    btnBack_->SetOnClickListener(presenter_);
-    AddViewToRootContainer(btnBack_);
+    labelValidityValue_->SetPosition(220, 170, 360, 70);
+    labelValidityValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+    labelValidityValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+    AddViewToRootContainer(labelValidityValue_);
 
-    // 初始化说明标签
+    // 初始化说明标签 - 居中显示,灰色文字
     labelNote_ = new UILabelExt();
     if (labelNote_ == nullptr) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelNote_ new failed");
         return false;
     }
-    labelNote_->SetPosition(80, 420, 360, 40);
-    labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 18);
-    labelNote_->SetText("星历数据用于提高GPS定位精度");
-    labelNote_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x5f));
+    labelNote_->SetPosition(50, 230, 366, 80);
+    labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
+    labelNote_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+    labelNote_->SetText("注:请打开4G,需要在网络连接状态下才可以下载");
+    labelNote_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff)); // 灰色
+    //修改为靠左对齐
+    labelNote_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
     AddViewToRootContainer(labelNote_);
 
-    //更新有效期
-    EphemerisDownloadView::GetInstance()->GetValidityPeriodLabel()->SetText(
-        EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod().c_str());
+    InitButtonExt(btnDownload_, 58, 320, 170, 90, DOWNLOAD_ID, STR_EPHEMERIS_DOWNLOAD, 30);
+    btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); // 设置按键颜色
+    btnDownload_->SetText("下载");
+    btnDownload_->SetOnClickListener(presenter_);
+    InitButtonExt(btnBack_, 238, 320, 170, 90, BACK_ID, STR_CANCEL, 30);
+    btnBack_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF8A36); // 设置按键颜色
+    btnBack_->SetOnClickListener(presenter_);
+    AddViewToRootContainer(btnDownload_);
+    AddViewToRootContainer(btnBack_);
+
+    // 初始化完成后更新所有状态
+    UpdateDownloadStatus();
+    UpdateValidityPeriod();
+    UpdateDownloadButton();
   
 
     return true;
 }
 
 UILabelExt *EphemerisDownloadView::GetDownloadLabel() {
-    return labelStatus_;
+    return labelStatusValue_;
 }
 
 UILabelExt *EphemerisDownloadView::GetValidityPeriodLabel() {
-    return labelValidity_;
+    return labelValidityValue_;
+}
+
+// 更新下载状态显示
+void EphemerisDownloadView::UpdateDownloadStatus() {
+    if (labelStatusValue_ == nullptr) return;
+    
+    auto status = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus();
+    int progress = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress();
+    
+    switch (status) {
+        case EphemerisDownloadStatus::NOT_DOWNLOADED:
+            labelStatusValue_->SetText("未下载");
+            break;
+        case EphemerisDownloadStatus::DOWNLOADING:
+            labelStatusValue_->SetText(("下载中 " + std::to_string(progress) + "%").c_str());
+            break;
+        case EphemerisDownloadStatus::DOWNLOADED:
+            labelStatusValue_->SetText("已完成");
+            break;
+        case EphemerisDownloadStatus::FAILED:
+            labelStatusValue_->SetText("下载失败");
+            break;
+    }
+}
+
+// 更新有效期显示
+void EphemerisDownloadView::UpdateValidityPeriod() {
+    if (labelValidityValue_ == nullptr) return;
+    
+    std::string period = EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod();
+    if (period.empty()) {
+        labelValidityValue_->SetText("无数据");
+    } else {
+        labelValidityValue_->SetText(period.c_str());
+    }
+}
+
+// 更新下载按钮状态
+void EphemerisDownloadView::UpdateDownloadButton() {
+    if (btnDownload_ == nullptr) return;
+    
+    auto status = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus();
+    
+    switch (status) {
+        case EphemerisDownloadStatus::NOT_DOWNLOADED:
+        case EphemerisDownloadStatus::FAILED:
+            btnDownload_->SetText("未下载");
+            btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xff, 0x8c, 0x00, 0xff).full); // 橙色
+            btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xcc, 0x70, 0x00, 0xff).full, UIButton::PRESSED);
+            break;
+        case EphemerisDownloadStatus::DOWNLOADING:
+            btnDownload_->SetText("下载中");
+            btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff).full); // 灰色
+            btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
+            break;
+        case EphemerisDownloadStatus::DOWNLOADED:
+            btnDownload_->SetText("已下载");
+            btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff).full); // 灰色
+            btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
+            break;
+    }
 }
 
 } // namespace OHOS