MTK手机平台添加资源和菜单的方式
一、 菜单的修改或增加:
以一个例子的方式介绍如何添加一个菜单,例子如下:
在主菜单的“设置”菜单下增加一个“我的设定”子菜单,“我的设定”下有两个子菜单:“我
的设定1”和“我的设定2”,打开这两个菜单,分别显示一幅动画。
步骤如下:
1.在..\plutommi\mmi\Setting\SettingInc目录下的SettingDefs.h文件中增加如下内容:
a. enum STR_SETTING_LIST的最后增加三个字符串ID的声明:
STR_MY_SETTING,
STR_MY_SETTING1,
STR_MY_SETTING2,
b. enum SCR_SETTING_LIST的最后增加三个Screen ID的声明:
SCR_MY_SETTING,
SCR_MY_SETTING1,
SCR_MY_SETTING2,
c. enum IMG_SETTING_LIST的最后增加一个Image ID的声明:
IMG_MY_SETTING,
d. 在..\plutommi\mmi\Inc目录下GlobalMenuItems.h文件中enum GLOBALMENUITEMSID
的最后增加三个菜单ID的声明:(有的是在本AP或模块的*Defs.h中声明)
MENU_MY_SETTING,
MENU_MY_SETTING1,
MENU_MY_SETTING2,
2.在..\plutommi\Customer\CustResource\PLUTO_MMI目录下的Ref_list.txt中添加三个字符串:
STR_MY_SETTING Undefined 10 My Setting My Setting 我的设定 我的设定
STR_MY_SETTING1 Undefined 10 My Setting1 My Setting1 我的设定1 我的设定1
STR_MY_SETTING2 Undefined 10 My Setting2 My Setting2 我的设定2 我的设定2
3. 在.. \plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI目录下的Res_Setting.c增加如下
资源:
ADD_APPLICATION_MENUITEM((MENU_MY_SETTING,MAIN_MENU_SETTINGS_MENUID ,2,MENU_MY_SETTING1,MENU_MY_SETTING2,SHOW, MOVEABLEWITHINPARENT,
DISP_LIST,STR_MY_SETTING,0));
ADD_APPLICATION_MENUITEM((MENU_MY_SETTING1,MENU_MY_SETTING,0,SHOW,
MOVEABLEWITHINPARENT, DISP_LIST,STR_MY_SETTING1,0));
ADD_APPLICATION_MENUITEM((MENU_MY_SETTING2,MENU_MY_SETTING,0,SHOW,
MOVEABLEWITHINPARENT, DISP_LIST,STR_MY_SETTING2,0));
ADD_APPLICATION_IMAGE2(IMG_MY_SETTING,CUST_IMG_PATH"\\\\MainLCD\\\\SubMenu\\\Settings\\\\MY_SETTING.GIF","My Setting.");
ADD_APPLICATION_STRING2(STR_MY_SETTING,"My Setting","MySetting");
ADD_APPLICATION_STRING2(STR_MY_SETTING1,"My Setting1","My Setting1");
ADD_APPLICATION_STRING2(STR_MY_SETTING2,"My Setting2","My Setting2");
4. 在.. \plutommi\Customer\CustResource\PLUTO_MMI\Res_MMI目录下的Res_MainMenu.c中修改如下:
ADD_APPLICATION_MENUITEM((MAIN_MENU_SETTINGS_MENUID,IDLE_SCREEN_
MENU_ID, 5,
MENU9102_INITIAL_SETUP,
.
.
.
改为:
ADD_APPLICATION_MENUITEM((MAIN_MENU_SETTINGS_MENUID,IDLE_SCREEN_
MENU_ID,6,
MENU_MY_SETTING,
MENU9102_INITIAL_SETUP,
5.在..\plutommi\mmi\Setting\SettingInc\目录下的SettingProt.h中增加如下的函数声明:
void HighlightMySetting(void);
void HighlightMySetting1(void);
void HighlightMySetting2(void);
void EntryMySetting(void);
void EntryMySetting1(void);
void EntryMySetting2(void);
6.在..\plutommi\mmi\Setting\SettingSrc\目录下的SettingSrc.c中增加如下的函数定义:
void HighlightMySetting(void)
{
SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetRightSoftkeyFunction(GoBackHistory,KEY_EVENT_UP);
SetKeyHandler(EntryMySetting, KEY_RIGHT_ARROW,KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(EntryMySetting,KEY_EVENT_UP);
}
void HighlightMySetting1(void)
{
SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetRightSoftkeyFunction(GoBackHistory,KEY_EVENT_UP);
SetKeyHandler(EntryMySetting1, KEY_RIGHT_ARROW,KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(EntryMySetting1,KEY_EVENT_UP);
}
void HighlightMySetting2(void)
{
SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
SetRightSoftkeyFunction(GoBackHistory,KEY_EVENT_UP);
SetKeyHandler(EntryMySetting2, KEY_RIGHT_ARROW,KEY_EVENT_DOWN);
SetLeftSoftkeyFunction(EntryMySetting2,KEY_EVENT_UP);
}
void EntryMySetting(void)
{
U16 nStrItemList[MAX_SUB_MENUS]; /* Stores the strings id of submenus returned */
U16 nNumofItem; /* Stores no of children in the submenu*/
U8* guiBuffer; /* Buffer holding history data */
U16 ImageList[MAX_SUB_MENUS];
EntryNewScreen(SCR_MY_SETTING, NULL, EntryMySetting, NULL);
/* 2 Get current screen to guibuffer for history purposes*/
guiBuffer= GetCurrGuiBuffer(SCR_MY_SETTING);
/* 3. Retrieve no of child of menu item to be displayed */
nNumofItem= GetNumOfChild(MENU_MY_SETTING);
/* 4. Retrieve string ids in sequence of given menu item to be displayed */
GetSequenceStringIds(MENU_MY_SETTING,nStrItemList);
GetSequenceImageIds(MENU_MY_SETTING, ImageList);
/* 5 Set current parent id*/
SetParentHandler(MENU_MY_SETTING);
/* 6 Register highlight handler to be called in menu screen */
RegisterHighlightHandler(ExecuteCurrHiliteHandler);
/* 7 Display Category1 Screen */
ShowCategory15Screen(STR_MY_SETTING, IMG_SCR_SETTING_CAPTION, STR_GLOBAL_OK, IMG_GLOBAL_OK,STR_GLOBAL_BACK, IMG_GLOBAL_BACK, nNumofItem, nStrItemList, ImageList, LIST_MENU, 0, guiBuffer);
/* 8.Register function with right softkey*/
SetRightSoftkeyFunction(GoBackHistory,KEY_EVENT_UP);
}
void EntryMySetting1(void)
{
S8 * string = GetString(STR_MY_SETTING1);
U16 imageId= IMG_MY_SETTING;
EntryNewScreen(SCR_MY_SETTING1, NULL, EntryMySetting1,NULL);
ShowCategory65Screen((U8*)string,imageId,NULL);
SetRightSoftkeyFunction(GoBackHistory,KEY_EVENT_UP);
}
void EntryMySetting2(void)
{
S8 * string = GetString(STR_MY_SETTING2);
U16 imageId= IMG_MY_SETTING;
EntryNewScreen(SCR_MY_SETTING2, NULL, EntryMySetting2, NULL);
ShowCategory65Screen((U8*)string,imageId,NULL);
SetRightSoftkeyFunction(GoBackHistory,KEY_EVENT_UP);
}
7. 在..\plutommi\mmi\Setting\SettingSrc\目录下的SettingSrc.c中void InitSettingApp(void)函数下增
加如下代码:
SetHiliteHandler(MENU_MY_SETTING,HighlightMySetting);
SetHiliteHandler(MENU_MY_SETTING1,HighlightMySetting1);
SetHiliteHandler(MENU_MY_SETTING2,HighlightMySetting2);
基本概括如下:
a. 在Ref_list.txt和Res_*.c中增加资源;
b. 在*Defs.h中声明所有资源的ID,包括字符串ID、图片ID、菜单ID、窗口ID。
c. 在具体的实现代码文件中增加处理代码。
分享到:
相关推荐
MTK添加主菜单资源源码,次文件为MTK手机平台添加一级菜单资源的源码
在本文中,我们将讨论如何在采用MTK6225平台的华禹旋风001手机上通过DIY(Do It Yourself)方法添加自定义菜单和子菜单,以实现个性化设置。 首先,我们的目标是在主菜单“设置”下添加一个名为“我的设定”的子...
在MTK(MediaTek)平台开发中,"10A 11B MTK添加菜单资源"是一个重要的主题,这通常涉及到系统UI的定制和优化,特别是针对移动设备的用户界面。10A和11B可能是特定的硬件版本或者软件版本代号,而“MMI”通常指的是...
通过以上步骤,我们成功地在MTK平台上增加了新的菜单选项“我的设定”,并且包含了两个子菜单:“我的设定1”和“我的设定2”。这些菜单项将在用户界面上正确显示,并且可以实现相应的功能。 需要注意的是,实际...
本文将深入探讨在MTK手机平台上如何添加资源和菜单,以提升用户体验。 1. **资源管理**: - 在MTK平台上,资源通常包括图片、音频、视频、字体等,它们是构建用户界面的重要元素。 - 添加资源:开发者需要将这些...
例如,`MTK_Add_menu_String.doc`可能包含了菜单项的文字内容和提示信息,这些需要被添加到项目的资源文件中,以便系统能够正确显示。 5. **集成测试**:在代码编写完成后,需要在模拟器或真机上进行测试,检查菜单...
在MTK(MediaTek)平台上开发用户界面时,添加资源是必不可少的操作,特别是对于初学者来说,理解这个过程至关重要。资源可以包括菜单、图像、字符串等,它们构成了用户与设备交互的基础。下面将详细解释如何在MTK...
在移动设备开发领域,特别是基于MTK芯片组的手机和平板电脑,宫格菜单是一种常见的用户界面设计模式,用于展示多个选项或功能入口,其布局通常为3x3的矩阵形式,因此也被称作九宫格。 ### MTK宫格菜单的关键知识点 ...
通过以上步骤,我们完成了MTK平台中`java`模块的完整添加流程,包括模块结构建立、文件组织、资源管理、编译配置以及功能实现等关键环节。这个过程体现了模块化开发的标准化和可扩展性,对于大型软件项目的维护和...
- **ImageMagick-6.2.5-5-Q16-windows-dll.exe**:ImageMagick是一款强大的图像处理工具,可用于处理各种格式的图像文件,在手机软件开发中可用于处理图标和界面图片等资源文件。 - **7z313.exe**:7-Zip是一款免费...
- `FirstApp.res`:资源文件定义,包括字符串、图片、菜单和屏幕等。 - `ref_list_FirstApp.txt`:多国语言字符串定义文件。 #### 三、将资源文件加入项目 接下来,需要将新创建的资源文件加入到项目中。这涉及到...
如何添加资源及其函数分析 ##### 2.1 概述 资源的添加通常包括三个步骤:准备素材、设定ID和装载数据。具体来说: - **准备素材**:根据资源类型准备相应的数据,如图片、字符串等。 - **设定ID**:为每项资源...
本文详细介绍了在MTK平台上添加菜单所需的步骤,包括字符串资源、图片资源和菜单资源的定义与使用。通过上述步骤,开发者可以有效地管理应用程序中的各种资源,使用户界面更加友好且功能更加强大。这些知识对于MTK...
主菜单是MTK平台中最重要的菜单之一,用于显示菜单项和子菜单项。主菜单的入口函数主要包括两个步骤:主菜单入口函数和主菜单修改为18宫格。在主菜单入口函数中,需要定义菜单项和子菜单项,并将其添加到菜单列表中...