• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            專注于服務器編程、網絡編程

            ~~保持一顆平常心~~持之以恒~~
            posts - 18, comments - 7, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            待機界面如何高仿NOKIA N73

            Posted on 2009-12-19 10:32 ~William~ 閱讀(474) 評論(0)  編輯 收藏 引用 所屬分類: MTK_MMI

              待機界面如何高仿NOKIA N73
            如何仿N73的經典界面

            1.1 狀態欄
                狀態欄包含電池電量指示,信號指示,日期時間顯示,運營商名字和各個狀態圖標顯示。
            電池電量顯示:
            圖標ID為STATUS_ICON_BATTERY_STRENGTH
            位于MainLCD\IdleScreen\Statusicons\battery 注意的是圖標保證5幀。關于電量顯示的控制位于
            文件PoweronCharger.c
            函數BatteryStatusIndication 根據當前的電量值設置顯示的幀數。
            該圖標在狀態欄的坐標
            Wgui_status_icons.c---函數arrange_status_icons()
            MMI_status_icons[STATUS_ICON_BATTERY_STRENGTH].y = 0;
            MMI_status_icons[STATUS_ICON_BATTERY_STRENGTH].x=220;
            信號指示圖標:
            圖標ID 為 STATUS_ICON_SIGNAL_STRENGTH
            位于MainLCD\IdleScreen\Statusicons\signal
            文件 NetWorkFunctions.c
            函數ChangeStatusIconLevel根據當前的信號值設置顯示的圖片幀數。
            該圖標在待機界面的坐標:
            文件Wgui_status_icons.c---函數arrange_status_icons()
            MMI_status_icons[STATUS_ICON_SIGNAL_STRENGTH].y = 0;
            MMI_status_icons[STATUS_ICON_SIGNAL_STRENGTH].x=3;
            時間和日期:
            文件:Wgui_datetime.c
            函數:show_main_LCD_date_time.設置日期,星期,時間的顯示坐標。
            注意的是:在函數hide_main_LCD_date_time中需要根據前面各個對象的坐標重新設置刷新區域的坐標。并且修改Wgui_categories_idlescreen.c下面的三個函數的注冊函數(之前屏蔽的)
            set_main_LCD_dt_date_hide_function(cat33_hide_date_display);
            set_main_LCD_dt_time_hide_function(cat33_hide_time_display);
            set_main_LCD_day_hide_function(cat33_hide_day_string_display);
            為了正確的顯示時間格式(用戶選擇12小時制,會增加AM/PM兩個字母),在函數show_main_LCD_date_time. 時間顯示的clip的地方增加格式判斷 PhnsetGetTimeFormat()。根據所返回的時間格式,設定clip區域。
            網絡運營商
            文件:Wgui_categories_idlescreen.c
            函數idle_screen_show_network_details() 調整網絡運營商的名字坐標
            狀態圖標
            狀態圖標包括消息接受提示,情景模式,外部電池等。圖標的排列位于:
            文件:Wgui_status_icons.c
            函數:arrange_status_icons()
            位于代碼段:
            x-=MMI_status_icons[k].width+STATUS_ICON_X_GAP;
            實現圖標自右向左的排列。每當有新的狀態產生,圖標就向左移動排列。
            1.2  快捷鍵
            設置待機界面上各個快捷方式的坐標以及響應函數
            文件Wgui_categories_idlescreen.c
            函數setup_touch_idle_screen_shortcut。通過該函數設置各個快捷鍵圖標的坐標以及各自的響應函數。
            文件 Shortcuts.c
            修改如下函數:
            ShctExecuteUpKey 功能修改為按鍵上移,高亮快捷鍵第一個圖標或者動態列表項
            ShctExecuteDownKey功能修改為按鍵下移,高亮快捷鍵第一個圖標或者動態列表項
            ShctExecuteLeftKey功能修改為按鍵左移,高亮左邊模塊,如果已經是第一個,則高亮最后一個
            ShctExecuteRightKey功能修改為按鍵右移,高亮右邊模塊,如果已經是最后個,則高亮第一個
            函數ShctExecuteOKKey 根據高亮的快捷鍵,進入對應的模塊。
            文件MMI_features_GuiPLUTO.h
                MMI_features_GUI.h
            可以打開或關閉是否顯示shortcut的宏
            __MMI_TOUCH_IDLESCREEN_SHORTCUTS__。

            為了同時顯示快捷鍵和屏幕下方的左右按鍵。需要在函數ShowCategory33Screen中 屏蔽dm_data.s32flags |= DM_NO_SOFTKEY;
            1.3 日歷項以及音樂播放提示
              為了實現日歷項和音樂播放曲目的正確顯示,需要在待機界面增加動態列表
            文件Wgui_categories_idlescreen.c
                   函數ShowCategory33Screen()
            添加動態列表:
            create_fixed_icontext_menuitems();
                MMI_current_menu_type=LIST_MENU;
            associate_fixed_icontext_list();
            設置列表中各個項的標題和圖標:
              init_dynamic_item_buffer(ItemsOfCat33,Cat33GetItemCallback,NULL,UI_dummy_function);
            ItemsOfCat33:動態列表中項的個數。由當前系統運行的程序決定。
            Cat33GetItemCallback:該回調函數注冊各個項的標題和圖標。
            在上述函數中,首先對日歷項的存儲區進行判斷是否有內容,如果有內容,繼續判斷該日歷項的日期是否在當日,如果是,將該字符串顯示在項中。如果今日有多個項,則顯示在日歷項序列中最早的一個。如果日歷項的日期不是今日,則顯示“今天無日歷項”。
            文件Todolist.c
            函數:TDLDeleteAllTask ()
            該函數的作用是刪除全部的備忘錄日歷項。因此,需要清空記錄緩沖區的記錄,防止在待機界面的日歷項仍然顯示。
            memset(&g_tdl_cntx.NoteBuff,0,MAX_TODO_LIST_NOTE);
            2 綜合
            2.1修改每個新版本的默認日期:
            文件:Custom_hw_default.c
            數字代表基準年份的偏移。8代表2008。月份和天同理
              const kal_uint8 DEFAULT_HARDWARE_YEAR = 8; 
              const kal_uint8 DEFAULT_HARDWARE_MON = 1;
              const kal_uint8 DEFAULT_HARDWARE_DAY = 1;
            2.2 通話
            文件:CallManagementIncoming.c
            當有外部來電的時候,進入函數
            EntryScrIncomingCallEvent
            文件:Wgui_categories_CM.c
            函數 ShowMOMTCallScreen 很多通話事件的屏幕都需要進入該函數。可以通過該函數,查找到各個通話事件的流程。可以對已有的屏幕做界面修改。
            3.3 撥號盤
            文件:IdleApp.c
            函數:IdleDisableLongPress
            由于長按鍵之后,需要重新注冊和清楚一些按鍵。而原函數為了達到這一效果,又重新調用了函數IdleScreenDigitHandler,雖然達到了目的,但是會造成第一次按鍵反應慢,因此,在IdleDisableLongPress函數內部禁止調用前一個函數,將函數中注冊和清除的按鍵寫在IdleDisableLongPress中。


            本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/chenzhp/archive/2009/03/14/3990510.aspx

            一级做a爰片久久毛片16| 久久亚洲精品成人av无码网站| 久久久久综合网久久| 国产69精品久久久久99尤物| 精品99久久aaa一级毛片| 一本一道久久a久久精品综合 | 久久精品人人槡人妻人人玩AV| 久久国产精品77777| 久久综合久久性久99毛片| 精品综合久久久久久97| 日韩一区二区久久久久久| 蜜桃麻豆www久久国产精品| 久久无码人妻一区二区三区 | 国产精品国色综合久久| 久久影院午夜理论片无码| 亚洲午夜久久久久久噜噜噜| 日韩亚洲欧美久久久www综合网| 久久久无码精品亚洲日韩京东传媒 | 日产精品久久久久久久性色| 91久久九九无码成人网站| 久久久久波多野结衣高潮| 国产精品欧美亚洲韩国日本久久| 国产色综合久久无码有码| 很黄很污的网站久久mimi色| 精品久久久久久成人AV| 综合久久国产九一剧情麻豆| 久久亚洲高清综合| 91超碰碰碰碰久久久久久综合| 伊人久久精品无码av一区| 久久久久亚洲精品天堂久久久久久 | 日韩久久久久久中文人妻 | 国产精品美女久久福利网站| 久久久久久一区国产精品| 国内精品九九久久久精品| 7777精品久久久大香线蕉| 一本久道久久综合狠狠躁AV| 免费精品久久久久久中文字幕| 99久久精品久久久久久清纯| 久久美女网站免费| 免费观看成人久久网免费观看| 青青青青久久精品国产 |