最近别人问到我一个专门修改图标文件的问题,发现我也不知道,以前做开发从来没有去修改过程序的图标。下面是在网上查资料时总结的一些方法。
首先针对Symbian OS S60第三版说说吧,第三版采用mif文件的形式来保存程序的图标,这个mif文件时怎么生产的呢,它是通过svg文件转化过来的,svg即 Scaleable Verctor Griphics,中文名叫做可缩放的标量图,无论多么小的图片,把它放大N倍都不会影响它的显示效果,用Adobe工具可以直接这种格式的图片。从 svg图片转换成mif图片需要一个中间步骤,首先需要将svg转化成svgt格式,这通过s60自带的SDK svg2svgt工具可以实现,然后通过mifconv.exe工具将svgt文件转换成mif文件。
将svgt文件转换成mif文件一般都是通过Makefile文件来实现的,这个Makefile文件会在.bld文件中指定,格式为:
gunmakefile *.mk.例如:
PRJ_PLATFORMS
PRJ_MMPFILES
gnumakefile icons.mk
Chat.mmp
而mk文件的内容一般为,大家直接找一个sample拷贝它的mk,然后修改一下下面的加粗的部分就可以了,
ifeq (WINS,$(findstring WINS, $(PLATFORM)))
ZDIR=$(EPOCROOT)epoc32/release/$(PLATFORM)/$(CFG)/Z
else
ZDIR=$(EPOCROOT)epoc32/data/z
endif
TARGETDIR=$(ZDIR)/RESOURCE/APPS
ICONTARGETFILENAME=$(TARGETDIR)/ChatEx.mif
do_nothing :
@rem do_nothing
MAKMAKE : do_nothing
BLD : do_nothing
CLEAN : do_nothing
LIB : do_nothing
CLEANLIB : do_nothing
RESOURCE :
mifconv $(ICONTARGETFILENAME) /
/c32 ../gfx/qgn_menu_chat.svg
FREEZE : do_nothing
SAVESPACE : do_nothing
RELEASABLES :
@echo $(ICONTARGETFILENAME)
FINAL : do_nothing
这样当用命令abld build工程的时候会调用这个makefile文件产生mif文件,注意修改bld文件后需要调用bldmake bldfiles来重新生产abld.bat文件。
通过上面的步骤之后,我们要显示的程序图标已经准备好了,那么接下来是便是修改程序的.rss文件已经_reg.rss文件以告诉程序该如何显示程序图标文件。
在.rss文件的LOCALISABLE_APP_INFO资源中指定应该显示的程序的名称以及包含程序图标的mif文件
RESOURCE LOCALISABLE_APP_INFO r_application_localisable_app_info
{
short_caption = STRING_r_app_caption_string;
caption_and_icon =
CAPTION_AND_ICON_INFO
{
caption = STRING_r_app_caption_string;
number_of_icons = 1;
icon_file = "//resource//apps//Application_aif.mif";
};
}
然后在_reg.rss文件的APP_REGISTRATION_INFO资源中指定localisable_resource_id为上面资源的名字,即r_application_localisable_app_info
RESOURCE APP_REGISTRATION_INFO
{
app_file="ChatEx";
localisable_resource_file = "//resource//apps//ChatEx";
localisable_resource_id = R_APPLICATION_LOCALISABLE_APP_INFO;
embeddability=KAppNotEmbeddable;
newfile=KAppDoesNotSupportNewFile;
}
最后在pkg文件中指定将mif文件复制到真机的对应安装目录下。
完成上述这些动作之后就完成了程序图标的更改工作。希望对大家有帮助!
创建自定义Symbian程序图标
最新推荐文章于 2010-03-17 18:28:00 发布