mt2503 在classic main menu上如何为一个新APP添加icon
时间:10-02
整理:3721RD
点击:
[UI]在classic main menu 上如何为一个新APP添加icon
[DESCRIPTION]
下图是1308MPQCIF的classicmainmenu,这个mainmenu不支持动态安装或卸载icon,显示出来的icon都是提前准备好图片,并在代码中添加了处理。
[SOLUTION]
下面说明如何在classicmainmenu上添加一个新icon,此修改方法在所有版本的Pluto/FTEclassicmainmenu适用,以PLUTO176X220SLIM_MATRIX为例。
1.添加图片资源:
将icon添加到image.zip的这个路径:\plutoMMI\Customer\Images\PLUTO176X220\MainLCD\MainMenu\SLIM_MATRIX
注意:图片size与当前folder中其他imagesize相同。
2.修改plutommi\MMI\MainMenu\MainMenuRes\MainMenuRes.res,
1)定义icon对应的stringid;
并添加stringid对应的文字内容,添加到
\plutommi\Customer\CustResource\PLUTO_MMI\ref_list\ref_list_mainmenu.txt,编辑这个文件请
使用\plutommi\Customer\STMTView.exe
2)定义icon对应的imageid
3)添加imageid对应的icon路径;这个需要添加多个地方,可以在此文件中搜索现有的imageid,例如:MAIN_MENU_MATRIX_PHONEBOOK_ICON,然后参考做类似的添加;注意这里写的图片名称要和实际名称相同,否则会找不到图片;
4)为新的app定义menuitemid;可以参考MAIN_MENU_PHONEBOOK_MENUID的定义和实现;实现中就会用到前面定义的stringid和imageid;
5)将menuitemid添加到menutree中,menutree在MainMenuRes.res的最后面;找到对应LCDsize的
menutree,将新app对应的menuid添加到需要位置。
3.在前面添加menuitem时,需要填对应的highlight处理函数;接下来就要到MainMenu.c/.h中添加实现对应的函数,这个函数实现在高亮选中此icon时,需要注册响应函数,通常是注册进入app的入口函数;可以参考现有的。注意将添加的代码用app对应的宏包好。
完成上面修改后,执行makeresgen&makemmi_app,如果这样编译有问题,就直接makenew。
附:常见问题处理
常见的问题是mainmenu上显示红叉,原因是图片没有添加;
注意查两个地方:
1.图片是否添加成功?
2.在MainMenuRes.res中的图片名与实际图片名是否相同?因为MainMenuRes.res中有很多
option,通过MainMenuRes.i可以确认对应option中是否添加了路径。
可以按照这个步骤来确认图片:
打开编译后生成的文件,看mainmenu用到的图片ID和路径,是否有您需要显示的图片内容:
\plutommi\Customer\ResGenerator\debug\res\MainMenuRes.i
对应的image目录下是否有这个图片:
\plutommi\Customer\Images\PLUTO176X220\MainLCD\MainMenu\SLIM_MATRIX
可以用浏览器打开这个文件,看imageID对应的图片是否存在:
\plutommi\Customer\ResGenerator\debug\image_resource_usage.htm
[DESCRIPTION]
下图是1308MPQCIF的classicmainmenu,这个mainmenu不支持动态安装或卸载icon,显示出来的icon都是提前准备好图片,并在代码中添加了处理。
[SOLUTION]
下面说明如何在classicmainmenu上添加一个新icon,此修改方法在所有版本的Pluto/FTEclassicmainmenu适用,以PLUTO176X220SLIM_MATRIX为例。
1.添加图片资源:
将icon添加到image.zip的这个路径:\plutoMMI\Customer\Images\PLUTO176X220\MainLCD\MainMenu\SLIM_MATRIX
注意:图片size与当前folder中其他imagesize相同。
2.修改plutommi\MMI\MainMenu\MainMenuRes\MainMenuRes.res,
1)定义icon对应的stringid;
并添加stringid对应的文字内容,添加到
\plutommi\Customer\CustResource\PLUTO_MMI\ref_list\ref_list_mainmenu.txt,编辑这个文件请
使用\plutommi\Customer\STMTView.exe
2)定义icon对应的imageid
3)添加imageid对应的icon路径;这个需要添加多个地方,可以在此文件中搜索现有的imageid,例如:MAIN_MENU_MATRIX_PHONEBOOK_ICON,然后参考做类似的添加;注意这里写的图片名称要和实际名称相同,否则会找不到图片;
4)为新的app定义menuitemid;可以参考MAIN_MENU_PHONEBOOK_MENUID的定义和实现;实现中就会用到前面定义的stringid和imageid;
5)将menuitemid添加到menutree中,menutree在MainMenuRes.res的最后面;找到对应LCDsize的
menutree,将新app对应的menuid添加到需要位置。
3.在前面添加menuitem时,需要填对应的highlight处理函数;接下来就要到MainMenu.c/.h中添加实现对应的函数,这个函数实现在高亮选中此icon时,需要注册响应函数,通常是注册进入app的入口函数;可以参考现有的。注意将添加的代码用app对应的宏包好。
完成上面修改后,执行makeresgen&makemmi_app,如果这样编译有问题,就直接makenew。
附:常见问题处理
常见的问题是mainmenu上显示红叉,原因是图片没有添加;
注意查两个地方:
1.图片是否添加成功?
2.在MainMenuRes.res中的图片名与实际图片名是否相同?因为MainMenuRes.res中有很多
option,通过MainMenuRes.i可以确认对应option中是否添加了路径。
可以按照这个步骤来确认图片:
打开编译后生成的文件,看mainmenu用到的图片ID和路径,是否有您需要显示的图片内容:
\plutommi\Customer\ResGenerator\debug\res\MainMenuRes.i
对应的image目录下是否有这个图片:
\plutommi\Customer\Images\PLUTO176X220\MainLCD\MainMenu\SLIM_MATRIX
可以用浏览器打开这个文件,看imageID对应的图片是否存在:
\plutommi\Customer\ResGenerator\debug\image_resource_usage.htm
APP的ICON不是存在APK文件里面的么?