现在的位置: 首页 > 综合 > 正文

在Symbian程序中使用图标!

2013年08月19日 ⁄ 综合 ⁄ 共 4132字 ⁄ 字号 评论关闭
Symbian中的图片主要两种:程序图标(像Win里的桌面图标和程序左上角的图标),界面用到的图片(各种美化用的图片)。

1.图标的使用

   利用PhotoShop,画图等图片编辑工具,分别制作24*24,32*32,24*24三种大小的图片(Symbian中各种视图显示用),需要设置成透明的部分用一种颜色填充(最好能与要显示的部分区别开来),最后存储为.BMP格式。

   启动AIFBuilder,选择New新建一个工程,选择Action->create mbm,出现一个新的界面,有三个标签分别对应三种分辨率;在每个标签里分别选择File->load载入相应大小的图片,这时左面的编辑区显示出刚刚载入的图片,选择左面第三个按钮(像索套的那个按钮),选择不需要显示的部分,这时右面编辑区出现一个黑白的图片,叫做掩图,其中黑色部分是将来要显示的部分,白色是设为透明的部分。编辑好相应的掩图后,点击Action-Generate,进行部分选项的设置。点击Generate按钮,生成6个图片(三个原图,3个掩图),一个.mbm文件(6个图片的整合),一个.mkg(?)文件,一个.rss文件(保存一个图片的枚举)……

2.图片的使用………………

 

总结:

一.           前言

图片在S60中主要分两种用途,一种是做为应用程序的图标(像Windows的桌面图标)显示在程序启动列表中,一种是起美化作用的图片。下面分别说明具体用法。

二.           概念的解释

.mbm文件

       S60在访问图片时并不是访问.bmp本身,而是访问经过压缩之后的.mbm文件。

掩图

       S60要显示的图片必须有一个与其对应的掩图文件,掩图中用黑色表示显示的部分,而用白色部分表示不显示部分,存储为黑白位图格式。

.aif文件

       存放应用程序图标和标题,以及其他一些与应用程序性能相关的信息。没有aif的应用程序会显示默认得系统图标(蓝色像拼图的那个图标)和与文件名相同的标题。

三.           图标的使用

Ø         首先利用图片编辑工具(PhotoShop,画图等)制作同样内容的图片3张,大小分别为:48*4832*3224*24(单位像素),存储为扩展名为.bmp的位图格式文件。

比如: ……(怎么不能上传图片?)这三张图片将分别在不同的视图中显示。

Ø         打开AIFBuilder,选择File->New,在第一个标签中输入应用程序名和UID;在第二个标签输入要生成mbm文件的路径,掩图的路径和其他临时文件的路径;在第三个标签选择语言;最后一个标签用默认设置。(需要注意:UID要和.mmp中第二个UID一致)

Ø         选择菜单Action->Create MBM,分别load三种大小的图片并编辑对应的掩图(点击按钮……(怎么不能上传图片?),选择不需要显示的像素点,再右面的编辑区会自动生成掩图),点击保存。

Ø         将生成的6张图片(三张原图,三张掩图)和一个.rss文件复制到工程目录下的aif目录下,没有的话需要手动建一个。

Ø         编辑工程的.mmp文件,加入AIF定义:

Ø         AIF HelloWorldPlus.aif ../aif HelloWorldPlus.rss / c24 helloWorldPlusicon.bmp helloWorldPlusiconmask.bmp helloWorldPlusicon_lst.bmp helloWorldPlusicon_lst_mask.bmp

Ø         HelloWorldPlus.aif是指定要生成的aif的名称,/aif是指定aif文件使用的.rss.bmp等文件的源目录, HelloWorldPlus.rss 是刚才工具生成的Rss文件名称, /24说明是24位色深的图片,后面分别按顺序列出图片名称,屏蔽的位图必须紧跟相应的原图,中间以空格分隔。

Ø         进入工程目录的/group文件夹。

Ø         bldmake bldfiles生成abld.bat文件。

Ø         abld makefile vc6重新生成工程。

Ø         abld build wins udeb 重新编译工程。

Ø         启动SDK,就可以看到程序的新图标了。

四.           图片的使用

Ø         用同样的方法制作图片和对应的掩图,存放到工程目录下的datasrc目录。

Ø         编辑工程的.mmp文件,加入.mbm的定义:

n         START BITMAP    HellWorldPlus.mbm    ―――标记位图转换数据的开始,并指定.mbm多重位图文件的文件名

n         HEADER    ―――指定创建符号ID文件HelloWorldPlus.mbg,文件包含一个枚举,分别代表每个图片。

n         TARGETPATH      /system/apps/HELLOWORLDPLUS

n         SOURCEPATH      ../DataSrc     ―――指定位图文件的存放位置

n         SOURCE          C24 2_24x24i.bmp   ―――依次列出一个或多个要放入.mbm中的位图文件的色深和文件名。

n         SOURCE          C24 2_24x24m.bmp

n         SOURCE          C24 2_32x32i.bmp

n         SOURCE          C24 2_32x32m.bmp

n         SOURCE          C24 2_48x48i.bmp

n         SOURCE          C24 2_48x48m.bmp

n         END   ―――标记位图转换数据的结束

Ø         进入工程目录下的group目录,运行abld build wins udeb,自动在编译目录下(C:/Symbian/7.0s/Series60_v21_C/Epoc32/release/wins/udeb/z/system/apps/HELLOWORLDPLUS/)生成.mbm文件并在epoc/include目录下生成.mbg文件。生成的.mbg文件的内容是:

n         // HELLWORLDPLUS.mbg

n         // Generated by BitmapCompiler

n         // Copyright (c) 1998-2001 Symbian Ltd.  All rights reserved.

n         //

n          

n         enum TMbmHellworldplus

n                {

n                EMbmHellworldplus2_24x24i,

n                EMbmHellworldplus2_24x24m,

n                EMbmHellworldplus2_32x32i,

n                EMbmHellworldplus2_32x32m,

n                EMbmHellworldplus2_48x48i,

n                EMbmHellworldplus2_48x48m

n                };  ―――在接下来的资源文件中要用到这些枚举值。

Ø         编辑资源文件,加入include语句#include <helloworldplus.mbg>,在需要设置图片的部分(比如一个Dialog)添加bmp资源的定义:

n             items =

n                 {

n                 DLG_LINE

n                     {

n                     type = EAknCtQuery;

n                     id = EGeneralQuery;

n                     control = AVKON_CONFIRMATION_QUERY

n                         {

n                         layout = EConfirmationLayout;

n                         bmpfile = “*”;  ――指定mbm文件的路径,如果使用*号,.mbm文件和.app文件的文件名必须相同,并且必须位于同一个目录中。否则要用#define定义一个,比如:#define AKNEXLIST_BMP_FILENAME "//system//apps//aknexlist//aknexlist.mbm"

n                         bmpid = EMbmHellworldplus2_24x24i;  ――前面.mbg文件中   的枚举值,这是要显示的图片

n                         bmpmask = EMbmHellworldplus2_24x24m; ――前面.mbg文件中的枚举值,这是掩图

n                         };

n                     }

n                 };

定义好资源文件,图片就可以正常的显示了,如果要对图片进行操作(如改变图片)就要编写源代码来实现,iEikonEnv->CreateIconL( KAknExListMbmFileName,                                                 EMbmAknexlistCheck,                                                 EMbmAknexlistCheckm )这将创建一个图片对象。 

抱歉!评论已关闭.