优化文字重叠问题
authorxue <2144439972@qq.com>
Tue, 4 Nov 2025 07:39:56 +0000 (15:39 +0800)
committerxue <2144439972@qq.com>
Tue, 4 Nov 2025 07:39:56 +0000 (15:39 +0800)
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/include/ThunderBirdLullabyView.h
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdDialogueView.cpp

index f64056e..2317a31 100644 (file)
@@ -11,7 +11,7 @@
 namespace OHOS
 {
     static constexpr int16_t TB_LISTEN_X = 38;
-    static constexpr int16_t TB_LISTEN_Y = 151;
+    static constexpr int16_t TB_LISTEN_Y = 127;
     static constexpr int16_t TB_LISTEN_W = 36;
     static constexpr int16_t TB_LISTEN_H = 36;
     static constexpr int16_t TB_LISTEN_FRAMES = 61;
@@ -50,6 +50,7 @@ namespace OHOS
         UILabelExt *RemindLabel{nullptr};
         UIImageView *RemindIcon{nullptr};
         UIImageView *RemindIcon2{nullptr};
+        UIImageView *RemindGround3{nullptr};
         
     };
 }
index 8c52b1b..d511fb2 100644 (file)
@@ -174,21 +174,22 @@ namespace OHOS
         {
             ThunderBirdModel::GetInstance()->LowFrequence();//减低视频帧率
             ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
-            if (TextLabel)
-            {
-                TextLabel->SetPosition(35, 64, 325, 42);
-                TextLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-                TextLabel->SetVisible(true);
-            }
             if (TextLabel_Y)
             { 
-                TextLabel_Y->SetPosition(35, 66, 325, 42);
+                TextLabel_Y->SetPosition(37, 66, 325, 42);
                 TextLabel_Y->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
                 TextLabel_Y->SetVisible(true);  
             }
+            if (TextLabel)
+            {
+                TextLabel->SetPosition(TextLabel_Y->GetX()-1.5, TextLabel_Y->GetY()-1.5, 325, 42);
+                TextLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+                TextLabel->SetVisible(true);
+            }
+            
             if(ThunderBirdModel::GetInstance()->IsTextEmpty() == true)
             {
-                UpdateDialogueText("思考中...");
+                UpdateDialogueText("思考中...  ");
             }
             else
             {
@@ -230,18 +231,11 @@ namespace OHOS
         case THUNDERBIRD_DIALOGUEVIEW_STATUS_SHOW:
         {
             // 从ThunderBirdModel获取当前表情和状态文本
-            std::string currentStatusText = "发呆中...";
+            std::string currentStatusText = "发呆中...  ";
             
             if (ThunderBirdModel::GetInstance()) {
                 currentStatusText = ThunderBirdModel::GetInstance()->GetCurrentStatusText();
             }
-            if (TextLabel)
-            {
-                TextLabel->SetPosition(35, 64, 325, 42);
-                TextLabel->SetText(currentStatusText.c_str());
-                TextLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-                TextLabel->SetVisible(true);
-            }
             if (TextLabel_Y)
             {
                 TextLabel_Y->SetPosition(37, 66, 325, 42);
@@ -249,6 +243,14 @@ namespace OHOS
                 TextLabel_Y->SetText(currentStatusText.c_str());
                 TextLabel_Y->SetVisible(true);
             }
+            if (TextLabel)
+            {
+                TextLabel->SetPosition(TextLabel_Y->GetX()-1.2, TextLabel_Y->GetY()-1.2, 325, 42);       
+                TextLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+                TextLabel->SetText(currentStatusText.c_str());
+                TextLabel->SetVisible(true);
+            }
+           
             break;
         }
         default:
@@ -257,19 +259,10 @@ namespace OHOS
     }
     void ThunderBirdDialogueView::UpdateDialogueText(const char *text)
     {
-        if(!TextLabel || !TextLabel_Y) return;
-        
-        // 先停止滚动,确保同步
-        TextLabel->SetAnimState(Animator::STOP);
-        TextLabel_Y->SetAnimState(Animator::STOP);
-        
+        if(!TextLabel || !TextLabel_Y) return;    
         // 设置文本
         TextLabel->SetText(text); 
         TextLabel_Y->SetText(text);
-        
-        // 同时开始滚动,确保同步
-        TextLabel->SetAnimState(Animator::START);
-        TextLabel_Y->SetAnimState(Animator::START);
     }
 
     void ThunderBirdDialogueView::AudioPlaybackEnd()