用 BREW™ 绘制预定义位图的方法
2003年9月12日 作者:高通 移动锋行
<STRONG>用 BREW™ 绘制预定义位图的方法</STRONG> <!-- Main Text Area --><BR><B>文档 ID:48</B>
<P>通过使用 ISHELL 接口 ISHELL_LoadResImage(用于资源)或 ISHELL_LoadImage(用于文件),后跟 IIMAGE_Draw,很容易从文件或资源中加载和绘制图像。本文演示了使用 ISHELL 和 IIMAGE 接口加载和显示位图所需的基本步骤。 </P>
<P>从资源中显示图像的步骤: </P>
<OL>
<LI>创建位图
<LI>将其添加到资源编辑器中
<LI>在资源编辑器中编译 .bar 和 .h 文件
<LI>将 .h 文件添加到您的项目中
<LI>使用 ISHELL_LoadResImage 加载图像
<LI>使用 IIMAGE_Draw() 显示图像
<LI>使用 IDISPLAY_Update() 更新屏幕 </LI></OL>
<P>代码示例: </P><PRE> #define MY_RES_FILE "Myres.bar"
// 从资源中加载和显示位图
int MyDisplayResImage()
{
IImage *pImage = NULL;
AEEDeviceInfo dm;
// 获取设备信息,以查看颜色深度
ISHELL_GetDeviceInfo(pShell, &dm);
// 如果颜色深度大于 4,则加载彩色位图
if( dm.nColorDepth > 4)
{
// 从资源中加载图像
pImage = ISHELL_LoadResImage(pShell,
MY_RES_FILE, IDB_MY_COLOR_BITMAP);
}
else
{
// 从资源中加载图像
pImage = ISHELL_LoadResImage(pShell,
MY_RES_FILE, IDB_MY_BW_BITMAP);
}
if( !pImage )
return EFAILED; // 加载失败
// 在坐标 (0,0) 处绘制图像
IIMAGE_Draw(pIImage, 0, 0);
// 更新屏幕
IDISPLAY_Update(pDisplay);
// 释放 IIMAGE 对象
IIMAGE_Release( pImage );
return SUCCESS;
}
</PRE>
<P>从文件中显示图像的步骤: </P>
<OL>
<LI>使用 ISHELL_LoadImage 从文件中加载图像
<LI>使用 IIMAGE_Draw() 显示图像
<LI>使用 IDISPLAY_Update() 更新屏幕 </LI></OL>
<P>代码示例: </P><PRE> // 从文件中加载和显示图像
int MyDisplayFileImage()
{
IImage *pImage = NULL;
AECHAR* pImageFile = NULL;
AEEDeviceInfo dm;
AECHAR szColorBmp[] = {'c','o','l','o','r','.','b','m','p'};
AECHAR szBWBmp[] = {'m','o','n','o','.','b','m','p'};
// 获取设置信息,以查看颜色深度
ISHELL_GetDeviceInfo(pShell, &dm);
// 如果颜色深度大于 4,则加载彩色位图
if( dm.nColorDepth > 4)
pImageFile = szColorBmp;
else
pImageFile = szBWBmp;
pImage = ISHELL_LoadImage(pShell, pImageFile);
if( !pImage )
return EFAILED; // 加载失败
// 在坐标 (0,0) 处绘制位图
IIMAGE_Draw(pIImage, 0, 0);
// 更新屏幕
IDISPLAY_Update(pDisplay);
// 释放 IIMAGE 对象
IIMAGE_Release( pImage );
return SUCCESS;
}
/END
</PRE><!-- Response Form -->