秒表界面优化:点击标记按钮,最新圈数将高亮显示 1522/1
authorluozheng <1732036298@qq.com>
Mon, 16 Dec 2024 07:02:49 +0000 (15:02 +0800)
committerluozheng <1732036298@qq.com>
Mon, 16 Dec 2024 07:02:49 +0000 (15:02 +0800)
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/MainStopWatchView.h
code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/StopWatchAdapter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/StopWatchItemView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/MainStopWatchPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/MainStopWatchView.cpp
code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/StopWatchAdapter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/StopWatchItemView.cpp [new file with mode: 0644]

index a433804..2ecec40 100644 (file)
@@ -356,6 +356,8 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/stopwatch/src/MainStopWatchPresenter.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/stopwatch/src/MainStopWatchView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/stopwatch/src/StopWatchModel.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/stopwatch/src/StopWatchAdapter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/stopwatch/src/StopWatchItemView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/stopwatch/src/StopWatchRecordCycleToLimitView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/stopwatch/src/StopWatchRecordTimeToLimitView.cpp
 
index ccae6db..d58e2c6 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-04-04 15:13:51\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-10-30 14:28:49\r
+ * @LastEditTime: 2024-12-13 17:02:27\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/MainStopWatchView.h\r
  */\r
 #ifndef MAIN_STOPWATCH_VIEW_H\r
@@ -19,6 +19,7 @@
 #include "components/text_adapter.h"\r
 #include "stopwatch/include/StopWatchRecordCycleToLimitView.h"\r
 #include "stopwatch/include/StopWatchRecordTimeToLimitView.h"\r
+#include "stopwatch/include/StopWatchAdapter.h"\r
 /*秒表主视图*/\r
 namespace OHOS\r
 {\r
@@ -57,6 +58,7 @@ namespace OHOS
         UICheckBox *GetPlayOrPausecheckBox(void);\r
         void ChangeRecordTimeToLimitView(void);\r
         UIScrollView *GetScrollView(int16_t index);\r
+        StopWatchAdapter *GetStopWatchAdapter(void);\r
     private:\r
         void InitMainStopWatchView(void);\r
         void ClearAll(void);\r
@@ -76,6 +78,8 @@ namespace OHOS
         UIList *list = nullptr;\r
         TextAdapter *listadapter = nullptr;\r
         List<const char *> *listdata = nullptr;\r
+\r
+        StopWatchAdapter *stopWatchAdapter{nullptr};\r
     };\r
 } // namespace OHOS\r
 #endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/StopWatchAdapter.h b/code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/StopWatchAdapter.h
new file mode 100644 (file)
index 0000000..8720b69
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-12-12 11:03:15
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-12-16 11:43:14
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/StopWatchAdapter.h
+ */
+
+#ifndef STOPWATCH_ADAPTER_H
+#define STOPWATCH_ADAPTER_H
+
+#include "components/ui_list.h"
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_view_group.h"
+#include "components/ui_image_view.h"
+#include "components/abstract_adapter.h"
+#include <list>
+#include <string>
+
+namespace OHOS
+{
+    typedef struct
+    {
+        std::string RecordCycleNumber;
+        std::string formattedTime;
+        std::string formattedDiff;
+        int curSelectItemViewIndex;
+    } StopWatchItem;
+
+    class StopWatchAdapter : public AbstractAdapter
+    {
+    public:
+        explicit StopWatchAdapter();
+        ~StopWatchAdapter() override;
+        uint16_t GetCount(void) override;
+        void ClearData(void);
+        void setSelectedIndex(int index);
+        UIView *GetView(UIView *inView, int16_t index) override;
+        void AddListItem(const StopWatchItem &item);
+
+    private:
+        std::list<const StopWatchItem> listData;
+        int curSelectItemViewIndex{-1};
+    };
+}
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/StopWatchItemView.h b/code/sdk/application/wearable/fd230app/nativeui/stopwatch/include/StopWatchItemView.h
new file mode 100644 (file)
index 0000000..9f5f11a
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-03-30 09:14:38
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-12-16 14:42:31
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/include/SettingItemView.h
+ */
+
+#ifndef STOPWATCH_ITEM_VIEW_H
+#define STOPWATCH_ITEM_VIEW_H
+
+#include "components/ui_label_ext.h"
+#include "components/ui_view_group.h"
+#include "stopwatch/include/StopWatchAdapter.h"
+namespace OHOS
+{
+    class StopWatchItemView : public UIViewGroup
+    {
+    public:
+        explicit StopWatchItemView();
+        ~StopWatchItemView() override;
+        void SetItemInfo(const StopWatchItem itemInfo);
+        void SetUpChild();
+        void SetItemViewColor(bool flag);
+
+    private:
+        UILabel RecordCycleNumber;
+        UILabel formattedTime;
+        UILabel formattedDiff;
+    };
+}
+#endif
index 229cc51..b0a1e50 100644 (file)
@@ -219,18 +219,39 @@ namespace OHOS
             const char *formattedTime = MainStopWatchView::GetInstance()->GetShowTimelabel()->GetText();\r
             char formattedDiff[64] = {0};\r
             MillisecondsToTimeStr(timeDifference, formattedDiff);\r
-            char *PickerData = (char *)malloc(128);\r
-            if (lastRecordTime == 0) // 如果是第一次标记\r
-            {\r
-                sprintf(PickerData, "%02d    %s    +%s", RecordCycleNumber, formattedTime, formattedTime);\r
-            }\r
-            else\r
-            {\r
-                sprintf(PickerData, "%02d    %s    +%s", RecordCycleNumber, formattedTime, formattedDiff);\r
-            }\r
-            m_listdata->PushFront(const_cast<const char *>(PickerData));\r
-            m_listadapter->SetData(m_listdata);\r
-            m_list->SetAdapter(m_listadapter);\r
+            // char *PickerData = (char *)malloc(128);\r
+            // if (lastRecordTime == 0) // 如果是第一次标记\r
+            // {\r
+            //     sprintf(PickerData, "%02d    %s    +%s", RecordCycleNumber, formattedTime, formattedTime);\r
+            // }\r
+            // else\r
+            // {\r
+            //     sprintf(PickerData, "%02d    %s    +%s", RecordCycleNumber, formattedTime, formattedDiff);\r
+            // }\r
+            // m_listdata->PushFront(const_cast<const char *>(PickerData));\r
+            // m_listadapter->SetData(m_listdata);\r
+            // m_list->SetAdapter(m_listadapter);\r
+            // char PickerData[128]={0};\r
+            // if (lastRecordTime == 0) // 如果是第一次标记\r
+            // {\r
+            //     sprintf(PickerData, "%02d    %s    +%s", RecordCycleNumber, formattedTime, formattedTime);\r
+            // }\r
+            // else\r
+            // {\r
+            //     sprintf(PickerData, "%02d    %s    +%s", RecordCycleNumber, formattedTime, formattedDiff);\r
+            // }\r
+\r
+            StopWatchItem item = {"", "", "", 0};\r
+            char buffer[3] = {0}; // 足够存放两位数字及字符串结束符'\0'\r
+            std::sprintf(buffer, "%02d", RecordCycleNumber);\r
+            item.RecordCycleNumber = buffer;\r
+            item.formattedTime = std::string(formattedTime);;\r
+            item.formattedDiff = "+" + std::string((lastRecordTime == 0) ? formattedTime : formattedDiff); //lastRecordTime == 0,如果是第一次标记\r
+            item.curSelectItemViewIndex = RecordCycleNumber - 1;\r
+            \r
+            view_->GetStopWatchAdapter()->setSelectedIndex(RecordCycleNumber - 1);\r
+            view_->GetStopWatchAdapter()->AddListItem(item);\r
+            m_list->SetAdapter(view_->GetStopWatchAdapter());\r
             m_list->SetStartIndex(RecordCycleNumber - 1);\r
             m_list->SetSelectPosition(RecordCycleNumber);\r
             m_list->RefreshList();\r
@@ -243,6 +264,9 @@ namespace OHOS
             StopWatchModel::GetInstance()->StopWatch_StopTimer(); // 停止定时器\r
             mainStopWatchView->GetShowTimelabel()->SetText("00:00.00");\r
             lastRecordTime = 0;\r
+            view_->GetStopWatchAdapter()->ClearData();\r
+            m_list->SetAdapter(nullptr);\r
+            m_list->RefreshList();\r
 \r
             m_button->SetViewId(ResetOrMarkButton_RESET1_VIEWID);\r
             m_button->SetImageSrc(ResetOrMarkButtonImg_Reset1, ResetOrMarkButtonImg_Reset1);\r
@@ -258,26 +282,26 @@ namespace OHOS
                 isStartMark = false;\r
             }\r
 \r
-            if (m_listdata != nullptr)\r
-            {\r
-                // 遍历列表,释放每个元素所占用的内存\r
-                ListNode<const char *> *node = m_listdata->Head();\r
-                int cnt = 0;\r
-                while (node!= m_listdata->End())\r
-                {\r
-                    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d",++cnt);\r
-                    const char *p = node->data_;\r
-                    free(const_cast<char *>(p));\r
-\r
-                    node = m_listdata->Remove(node);\r
-                }\r
-                m_listdata->Clear();\r
-            }\r
-            else\r
-            {\r
-                // Handle error or log the issue\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: m_listdata is nullptr");\r
-            }\r
+            // if (m_listdata != nullptr)\r
+            // {\r
+            //     // 遍历列表,释放每个元素所占用的内存\r
+            //     ListNode<const char *> *node = m_listdata->Head();\r
+            //     int cnt = 0;\r
+            //     while (node != m_listdata->End())\r
+            //     {\r
+            //         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d", ++cnt);\r
+            //         const char *p = node->data_;\r
+            //         free(const_cast<char *>(p));\r
+\r
+            //         node = m_listdata->Remove(node);\r
+            //     }\r
+            //     m_listdata->Clear();\r
+            // }\r
+            // else\r
+            // {\r
+            //     // Handle error or log the issue\r
+            //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Error: m_listdata is nullptr");\r
+            // }\r
             RecordCycleNumber = 0;\r
         }\r
         else if (strcmp(clickedViewId, CycleToLimitReturnButton_VIEWID) == 0) // 点击返回按钮\r
index d0bd49d..3a8f0fe 100644 (file)
@@ -65,6 +65,12 @@ namespace OHOS
                 LineImage = nullptr;\r
             }\r
 \r
+            if (stopWatchAdapter != nullptr)\r
+            {\r
+                delete stopWatchAdapter;\r
+                stopWatchAdapter = nullptr;\r
+            }\r
+\r
             if (list != nullptr)\r
             {\r
                 list->ClearFocus();\r
@@ -235,14 +241,6 @@ namespace OHOS
                 return;\r
             }\r
             group->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
-            UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(MainStopWatchPresenter::GetInstance());\r
-            if (draglistener == nullptr)\r
-            {\r
-                return;\r
-            }\r
-            group->SetOnDragListener(draglistener);\r
-            group->SetTouchable(true);\r
-            group->SetDraggable(true);\r
             /* ----------------------- scrollView[MAIN_STOPWATCH] ----------------------- */\r
             if (scrollView[MAIN_STOPWATCH] == nullptr)\r
             {\r
@@ -276,7 +274,7 @@ namespace OHOS
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "showTimelabel new fail!!");\r
                 return;\r
             }\r
-            showTimelabel->SetPosition(0, 160,466, 94);\r
+            showTimelabel->SetPosition(0, 160, 466, 94);\r
             showTimelabel->SetStyle(STYLE_TEXT_FONT, 84);\r
             showTimelabel->SetStyle(STYLE_LINE_HEIGHT, 94);\r
             showTimelabel->SetText("00:00.00");\r
@@ -294,6 +292,13 @@ namespace OHOS
             const char *imageimagesPath = "/user/res/stopwatch/STOPWATCH_LINE.bin";\r
             LineImage->SetSrc(imageimagesPath);\r
             LineImage->SetVisible(false);\r
+            /* ---------------------------- stopWatchAdapter ---------------------------- */\r
+            stopWatchAdapter = new StopWatchAdapter();\r
+            if (stopWatchAdapter == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "stopWatchAdapter new fail!!");\r
+                return;\r
+            }\r
             /* ---------------------------------- list ---------------------------------- */\r
             list = new UIList();\r
             if (list == nullptr)\r
@@ -301,7 +306,7 @@ namespace OHOS
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "list new fail!!");\r
                 return;\r
             }\r
-            list->SetPosition(56, 170, 360, 100);\r
+            list->SetPosition(56, 170, 360, 130);\r
             list->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
             list->SetReboundSize(30);\r
             list->SetThrowDrag(true);\r
@@ -365,11 +370,9 @@ namespace OHOS
             MainStopWatchPresenter::GetInstance()->SetImage(LineImage);\r
             MainStopWatchPresenter::GetInstance()->SetList(list, listadapter, listdata);\r
             // Add the CallBack about events\r
-            UICheckBox::OnChangeListener *PlayOrPausecheckBoxChangeListener = static_cast<UICheckBox::OnChangeListener *>(MainStopWatchPresenter::GetInstance());\r
-            PlayOrPausecheckBox->SetOnChangeListener(PlayOrPausecheckBoxChangeListener);\r
+            PlayOrPausecheckBox->SetOnChangeListener(presenter_);\r
             PlayOrPausecheckBox->SetOnClickListener(presenter_);\r
-            UIView::OnClickListener *ResetOrMarkbuttonClick = static_cast<UIView::OnClickListener *>(MainStopWatchPresenter::GetInstance());\r
-            ResetOrMarkbutton->SetOnClickListener(ResetOrMarkbuttonClick);\r
+            ResetOrMarkbutton->SetOnClickListener(presenter_);\r
         }\r
     }\r
 \r
@@ -394,13 +397,24 @@ namespace OHOS
         return scrollView[index];\r
     }\r
 \r
+    StopWatchAdapter *MainStopWatchView::GetStopWatchAdapter(void)\r
+    {\r
+        return stopWatchAdapter;\r
+    }\r
+\r
     void MainStopWatchView::OnStart()\r
     {\r
         View<MainStopWatchPresenter>::OnStart();\r
+        SetContainerView(new UIViewGroup());\r
+        if (GetContainer() == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetContainerView fail!!");\r
+            return;\r
+        }\r
+        container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
         InitMainStopWatchView();\r
         // 增加按键监听\r
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::MainStopWatchPresenter::GetInstance();\r
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+        RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
     }\r
 \r
     void MainStopWatchView::OnSetUpView()\r
@@ -414,8 +428,7 @@ namespace OHOS
         scrollView[MAIN_STOPWATCH]->Add(PlayOrPausecheckBox);\r
         scrollView[MAIN_STOPWATCH]->Add(ResetOrMarkbutton);\r
         group->Add(scrollView[MAIN_STOPWATCH]);\r
-        RootView::GetInstance()->Add(group);\r
-        container_ = group;\r
+        container_->Add(group);\r
         Draw();\r
     }\r
 \r
@@ -431,7 +444,12 @@ namespace OHOS
 \r
         View<MainStopWatchPresenter>::OnStop();\r
         RootView::GetInstance()->ClearOnKeyActListener();\r
-        RootView::GetInstance()->RemoveAll();\r
+        if (container_ != nullptr)\r
+        {\r
+            container_->RemoveAll();\r
+            delete container_;\r
+            container_ = nullptr;\r
+        }\r
         return;\r
     }\r
 }
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/StopWatchAdapter.cpp b/code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/StopWatchAdapter.cpp
new file mode 100644 (file)
index 0000000..352b06c
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-12-12 11:07:26
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-12-16 11:43:35
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/StopWatchAdapter.cpp
+ */
+#include "stopwatch/include/StopWatchAdapter.h"
+#include "stopwatch/include/StopWatchItemView.h"
+#include "wearable_log.h"
+namespace OHOS
+{
+    StopWatchAdapter::StopWatchAdapter() {}
+    StopWatchAdapter::~StopWatchAdapter()
+    {
+        listData.clear();
+    }
+    uint16_t StopWatchAdapter::GetCount(void)
+    {
+        return listData.size();
+    }
+
+    void StopWatchAdapter::ClearData(void)
+    {
+        listData.clear();
+        curSelectItemViewIndex = -1;
+    }
+
+    void StopWatchAdapter::setSelectedIndex(int index)
+    {
+        curSelectItemViewIndex = index;
+    }
+
+    UIView *StopWatchAdapter::GetView(UIView *inView, int16_t index)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetView:%d", index);
+        if (listData.empty())
+        {
+            return nullptr;
+        }
+        if (index < 0)
+        {
+            return nullptr;
+        }
+        size_t uindex = index;
+        if (uindex >= listData.size())
+        {
+            return nullptr;
+        }
+
+        std::list<const StopWatchItem>::iterator it = listData.begin();
+        for (int i = 0; i < index; i++)
+        {
+            it++;
+        }
+        const StopWatchItem itemData = *it;
+        StopWatchItemView *item = nullptr;
+        if (inView == nullptr)
+        {
+            item = new StopWatchItemView();
+        }
+        else
+        {
+            item = static_cast<StopWatchItemView *>(inView);
+        }
+        item->SetViewIndex(index);
+        item->SetItemInfo(itemData);
+        if(curSelectItemViewIndex == itemData.curSelectItemViewIndex)
+        {
+            item->SetItemViewColor(true);
+        }
+        else
+        {
+            item->SetItemViewColor(false);
+        }
+        return item;
+    }
+
+    void StopWatchAdapter::AddListItem(const StopWatchItem &item)
+    {
+        listData.push_front(item);
+    }
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/StopWatchItemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/StopWatchItemView.cpp
new file mode 100644 (file)
index 0000000..c632d8c
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-12-12 14:40:44
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-12-16 11:40:34
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/stopwatch/src/StopWatchItemView.cpp
+ */
+#include "stopwatch/include/StopWatchItemView.h"
+#include "wearable_log.h"
+namespace OHOS
+{
+    StopWatchItemView::StopWatchItemView()
+    {
+        SetPosition(0, 0, 360, 42);
+        SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+        SetStyle(STYLE_BACKGROUND_OPA, 255);
+        SetUpChild();
+        Add(&RecordCycleNumber);
+        Add(&formattedTime);
+        Add(&formattedDiff);
+    }
+
+    StopWatchItemView::~StopWatchItemView()
+    {
+        RemoveAll();
+    }
+
+    void StopWatchItemView::SetItemInfo(const StopWatchItem itemInfo)
+    {
+        RecordCycleNumber.SetText(itemInfo.RecordCycleNumber.c_str());
+        formattedTime.SetText(itemInfo.formattedTime.c_str());
+        formattedDiff.SetText(itemInfo.formattedDiff.c_str());
+    }
+
+    void StopWatchItemView::SetUpChild()
+    {
+        RecordCycleNumber.SetPosition(0, 0, 80, 32);
+        RecordCycleNumber.SetStyle(STYLE_TEXT_FONT, 28);
+        RecordCycleNumber.SetStyle(STYLE_LINE_HEIGHT, 32);
+        RecordCycleNumber.SetLineBreakMode(UILabel::LINE_BREAK_CLIP);
+        RecordCycleNumber.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+        RecordCycleNumber.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+
+        formattedTime.SetPosition(80, 0, 120, 32);
+        formattedTime.SetStyle(STYLE_TEXT_FONT, 28);
+        formattedTime.SetStyle(STYLE_LINE_HEIGHT, 32);
+        formattedTime.SetLineBreakMode(UILabel::LINE_BREAK_CLIP);
+        formattedTime.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+        formattedTime.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+
+        formattedDiff.SetPosition(230, 0, 130, 32);
+        formattedDiff.SetStyle(STYLE_TEXT_FONT, 28);
+        formattedDiff.SetStyle(STYLE_LINE_HEIGHT, 32);
+        formattedDiff.SetLineBreakMode(UILabel::LINE_BREAK_CLIP);
+        formattedDiff.SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+        formattedDiff.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+    }
+
+    void StopWatchItemView::SetItemViewColor(bool flag)
+    {
+        if (flag)
+        {
+            RecordCycleNumber.SetTextColor(Color::GetColorFromRGBA(0xff, 0x8a, 0x36, 0xff));
+            formattedTime.SetTextColor(Color::GetColorFromRGBA(0xff, 0x8a, 0x36, 0xff));
+            formattedDiff.SetTextColor(Color::GetColorFromRGBA(0xff, 0x8a, 0x36, 0xff));
+        }
+        else
+        {
+            RecordCycleNumber.SetTextColor(Color::GetColorFromRGBA(0xaa, 0xaa, 0xaa, 0xff));
+            formattedTime.SetTextColor(Color::GetColorFromRGBA(0xaa, 0xaa, 0xaa, 0xff));
+            formattedDiff.SetTextColor(Color::GetColorFromRGBA(0xaa, 0xaa, 0xaa, 0xff));
+        }
+    }
+}
\ No newline at end of file