listbox中使用svg图片 Tuesday, October 13, 2009

这些天尽管有源源不断的pr过来,但是还是有时间搞搞listbox。之所以搞这个是因为在NewLc上看到有不少人问类似的问题,而且我觉得在UI开发中Listbox经常用到。计划在一周内抽时间把S60上的所有标准listbox都深入研究一下。
今天在使用CAknSingleGraphicStyleListBox的时候,没有合适的icon用,正好手边有一些svg图片就试了一下,发现可以使用。这下好了svg图片可大可小,不用考虑尺寸问题。
如果用carbid c++ ide的话,可以直接用ide提供的功能编辑和创建mbm/mif文件。如下图所示启动编辑器















目前,我通过makefile文件生成mif文件。首先创建一个makefile文件icon.mk,然后在bld文件中加入
gnumakefile icon.mk

即可。 其实也可以在mmp文件中加入
prj_extensions
start extension s60/mifconc
option targetfile icon.mif
.....
option source ....
end
来替代那个makefile文件
SVG图片的使用方法不同于bmp。bmp通过bmpconv工具被整合为一个mbm(multi-bitmap)文件,这是symbian独有的文件格式。而svg通过mifconv工具整合为mif(MSX interchange format)文件,在Mif文件中也可以加入bmp。
由于mif的支持不是symbian提供的,所以用createiconl这样的方法只能加载mbm文件,不能加载mif文件,需要用aknsutils::creategulicon加载。加载后,使用方法跟通常一样。

0 comments: