该程序只适用于 S60 3rd
第一步, 在 Icons_scalable_dc.mk 文件中添加生成多位图文件的语句。
如果使用 carbide.c++ 2.0的话可以自动生成。否则的话需要手机生成,格式如下:
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)\MyBitMap_0xE3F4C03A.mif
ICONDIR=..\gfx
RESOURCE : $(ICONTARGETFILENAME)
$(ICONTARGETFILENAME): \
$(ICONDIR)\qgn_menu_MyBitMap.svg \
..\bitmaps\1.bmp \
..\bitmaps\2.bmp \
..\bitmaps\3.bmp
mifconv $(ICONTARGETFILENAME) \
/H$(EPOCROOT)epoc32\include\MyBitMap_0xE3F4C03A.mbg \
/c32 $(ICONDIR)\qgn_menu_MyBitMap.svg \
/c8 ..\bitmaps\1.bmp \
..\bitmaps\2.bmp \
..\bitmaps\3.bmp
注意:上边的"\" 代表连字符,意思是 $(ICONDIR)\qgn_menu_MyBitMap.svg \
..\bitmaps\1.bmp \
..\bitmaps\2.bmp \
..\bitmaps\3.bmp
这几行,是连在一起的,同在一行写的意思是一样的。
mifconv 是生成多位图文件的工具,它前面必须是一个 TAB 键
第二步,编程加载图片和画图
1.类中的声明;
private: //data
CFbsBitmap* iBitMap;
public :
void LoadBitmap();
2.实现:
void LoadBitmap()
{
iBitMap=new (ELeave)CFbsBitmap();
_LIT(KMBMFILE,"\\system\\apps\\Multi\\Multi.mbm");
TFileName file(KMBMFILE);
// TFilename fname = _L("Multi.mbm");
User::LeaveIfError(CompleteWithAppPath(file));
User::LeaveIfError(iBitMap->Load(file,EMbmMultiVideo));
}
在ConstructL()中
CreateWindowL();
后添加
LoadBitmap();
到这里,就已经加载图片了
在Draw中添加
gc.Clear();
TPoint topLeft(20,20);
gc.BitBlt(topLeft,iBitMap);
图片就显示出来了
第四步,打包
打包的时候要注意将mbm文件加到包里面
"C:\Symbian\8.0a\S60_2nd_FP2_SC\epoc32\data\Z\system\APPS\MULTI\Multi.mbm" -"!:\system\apps\MULTI\Multi.mbm"
阅读(442) | 评论(0) | 转发(0) |