在S60加载Bitmap和Mask的效率
From Forum Nokia Wiki
_LIT(KYourMifFile, “resource//apps//yourmif.mif”);
//yourmif.mif contains svgs
include <yourmif.mbg> in .cpp file
// In header file
CFbsBitmap* iFocusBitmap;
CFbsBitmap* iBitmapMask;
// anywhere in .cpp file
if(iFocusBitmap == NULL)
{
// load the image and mask
AknIconUtils::CreateIconL( iFocusBitmap,
iBitmapMask,
KYourMifFile,
EMbmYourMif_focus,
EMbmYourMif_mask );
}
TSize size(Rect().Width()*10/100,Rect().Height()*10/100);
AknIconUtils::SetSize(iFocusBitmap,size,EAspectRatioNotPreserved);
AknIconUtils::SetSize(iBitmapMask,size,EAspectRatioNotPreserved );
// In the destructor
delete iFocusBitmap;
delete iBitmapMask;
AknIconUtils::SetSize初始化给定尺寸的图标,参数aBitmap是CAknBitmap的示例,如AknIconUtils方式生成。如果不是CAknBitmap,这个方法无效。注意这里调用设置的是bitmap和mask(如果它存在的话),如果不调用SetSize方法,那么位图将无法被绘制到屏幕上。
尽管CreateIconL有重载方法只加载单个图片,但上述方法在加载和修改尺寸方面更有效率。
本文介绍在S60平台上高效加载Bitmap和Mask的方法,包括如何使用AknIconUtils进行尺寸调整,确保位图能在屏幕上正确显示。通过具体代码示例展示了创建图标的过程。
385

被折叠的 条评论
为什么被折叠?



