在Symbian程序中使用图标!

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*48,32*32,24*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的定义:

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

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

 TARGETPATH \system\apps\HELLOWORLDPLUS

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

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

 SOURCE C24 2_24x24m.bmp

 SOURCE C24 2_32x32i.bmp

 SOURCE C24 2_32x32m.bmp

 SOURCE C24 2_48x48i.bmp

 SOURCE C24 2_48x48m.bmp

 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文件的内容是:

 // HELLWORLDPLUS.mbg

 // Generated by BitmapCompiler

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

 //

 

 enum TMbmHellworldplus

 {

 EMbmHellworldplus2_24x24i,

 EMbmHellworldplus2_24x24m,

 EMbmHellworldplus2_32x32i,

 EMbmHellworldplus2_32x32m,

 EMbmHellworldplus2_48x48i,

 EMbmHellworldplus2_48x48m

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

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

 items =

 {

 DLG_LINE

 {

 type = EAknCtQuery;

 id = EGeneralQuery;

 control = AVKON_CONFIRMATION_QUERY

 {

 layout = EConfirmationLayout;

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

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

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

 };

 }

 };

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值