7、 最后,把我们添加在 idle.res、MainMenuRes.res中的资源移到HelloMTK.res中,把idlecommon.c中的源码移到HelloMTK.c文件中。代码如下:
HelloMTK.c 文件
#include "MMI_features.h"
#if defined(__MMI_HELLO_MTK__)
#include "HelloMTK.h"
#include "GlobalResDef.h"
#include "Mmi_frm_gprot.h"
#include "Gui_themes.h"
void mmi_my_mtk_func_exit(void)
{
}
void mmi_my_mtk_func(void)
{
mmi_frm_scrn_enter(GRP_ID_ROOT, SCR_ID_MY_MTK_FUNC, mmi_my_mtk_func_exit,mmi_my_mtk_func,MMI_FRM_FULL_SCRN);
gui_set_text_color(UI_COLOR_WHITE);/*设置字符打印颜色*/
gdi_image_draw_id(0, 0, IMG_ID_HELLO_MTK);/*显示图片*/
gui_move_text_cursor(10, 15);/*设置字符打印坐标*/
gui_set_font(&MMI_medium_font);/*设置字符显示的字体*/
gui_print_text((UI_string_type)GetString(STR_ID_HELLO_MTK));/*打印字符*/
/*刷新屏幕*/
gui_BLT_double_buffer(0, 0, UI_DEVICE_WIDTH,UI_DEVICE_HEIGHT);
/*注册右软键事件*/
SetKeyHandler(mmi_frm_scrn_close_active_id, KEY_RSK, KEY_EVENT_UP);
}
void mmi_highlight_my_mtk(void)
{
SetLeftSoftkeyFunction(mmi_my_mtk_func, KEY_EVENT_UP);
SetKeyHandler(mmi_frm_scrn_close_active_id, KEY_RSK, KEY_EVENT_UP);
}
#endif
HelloMTK.h 文件
#ifndef __HELLOMTK_H__
#define __HELLOMTK_H__
#include "MMI_features.h"
#if defined(__MMI_HELLO_MTK__)
#include "mmi_rp_app_hellomtk_def.h"
extern void mmi_my_mtk_func_exit(void);
extern void mmi_my_mtk_func(void);
extern void mmi_highlight_my_mtk(void);
#endif
#endif /*__HELLOMTK_H__*/
HelloMTK.res 文件
#include "mmi_features.h"
#include "custresdef.h"
#if defined(__MMI_HELLO_MTK__)
<?xml version="1.0" encoding="UTF-8"?>
<APP id="APP_HELLOMTK">
<!--Include Area-->
<INCLUDE file="GlobalResDef.h,SettingResDef.h"/>
<!-----------------------------------------------------String Resource Area----------------------------------------------------->
<STRING id="STR_ID_HELLO_MTK">"Hello MTK !"</STRING>
<!-----------------------------------------------------Image Resource Area------------------------------------------------------>
<IMAGE id="IMG_ID_HELLO_MTK">CUST_IMG_PATH"\\\\MainLCD\\\\IdleScreen\\\\Wallpaper\\\\WALL01.jpg"</IMAGE>
<!------------------------------------------------------Menu Resource Area------------------------------------------------------>
/*添加菜单ID*/
<MENU id="MENU_MY_MTK_ID" type="APP_MAIN" str="STR_ID_HELLO_MTK" img="IMG_GLOBAL_OK" highlight="mmi_highlight_my_mtk"/>
<!------------------------------------------------------Timer Resource Area------------------------------------------------------>
<!------------------------------------------------------SCREEN Resource---------------------------------------------------------->
<SCREEN id="SCR_ID_MY_MTK_FUNC"/>
</APP>
#endif
最后依次执行make new
,make gen_modis,重新运行模拟器,运行结果虽然没变,但我们把代码模块化了,方便以后的维护、移植。这只是一个很小的例子,如果是一个上万行代码的应用,这种方式就能体现出极大的优势。另外audio.zip、images.zip中的资源文件我们也可以建立文件夹单独列出来管理,请读者自己尝试,在后面的app实例开发中我们会采用这种方法。