BREW 应用中的SVG技术

本文介绍如何在BREW环境中实现SVG图像的播放与交互功能,包括创建SVG文件、集成到BREW应用的方法及按键交互处理。从创建SVG文件到在BREW中使用IMediaSVG接口进行播放,再到处理SVG中的交互事件,提供了详细的步骤和技术指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SVG是二维的向量图像格式,是由W3C和3GPP的提出的标准,实现了内置的交互性,支持跨越显示环境的缩放,文件尺寸比BMP, JPEG,GIF等格式还要小。SVG的编辑工具非常简单易用,基于XML的格式从而容易创建和修改,支持富文本选项。

在BREW 3.1.4开始,IMediaSVG 接口开始支持SVG的播放,暂停,终止,快进和快退等,同时支持按键,笔操作,旋转和缩放等操作。

希望使用SVG的时候,首先需要使用一些商用的图像编辑工具来创建SVG文件,例如 Beatware Mobile Designer 2.0™, Beatware e-PicturePro 5.0™,Ikivo Animator 2.0 ™,Adobe® Illustrator CS2®,Adobe® GoLive CS2®和Open source Inkscape 0.44.1等等。

然后,生成BREW中需要的相关内容,例如:

<!-- Button -->

<g id = "Button_Back2" nav-prev = "url(#Button_GetNew)" navnext = "url(#Button_Options5)" focusable="false" >

其中定义了 ‘nav-prev’和 ‘nav-next’两个元素等等,来保证导航功能。一般的情况下,需要禁止聚焦功能,例如<g focusable="false" id="Animation_38">,并且需要使用gzip压缩目标文件。

在SVG的内容生成之后,一般使用web浏览就可以了解SVG的基本显示,并进行一下交互性测试。但需要注意的是,不同浏览器对SVG的支持程度也不相同。SVG中的XML 文档结构可以通过Opera 浏览器来验证,而且该浏览器还能够报告出错误的行号。在安装了SVG的扩展类之后,BREW模拟器就能够播放SVG了。

在BREW应用中,首先要获得IMediaSVG接口:

ISHELL_CreateInstance(pme->m_pIShell,AEECLSID_MEDIASVG,(void**)pme->m_pIMediaSVG);

其次,确定需要播放的文件内容:

AEEMediaData mData;

mData.clsData = MMD_FILE_NAME;

mData.pData = svg_filename;

mData.dwSize = 0;

IMEDIA_SetMediaData(pMe->pIMediaSVG, &mData);

然后,注册回调函数:

IMEDIA_RegisterNotify(pMe->pIMediaSVG, MediaNotifyCB, pMe);

最后,就可以使用IMEDIA_Play(pMe->pIMediaSVG)来播放文件了。其中回调函数MediaNotifyCB负责获取SVG文件中的一个帧,并显示在屏幕上。

void MediaNotifyCB(void * pUser, AEEMediaCmdNotify * pCmdNotify){

APP_CLASS * pMe = (APP_CLASS*) pUser;

switch(pCmdNotify->nStatus)

{

case MM_STATUS_FRAME:

{

AEEDeviceInfo di;

IBitmap* frameBuf;

IMEDIA_GetFrame(pMe->pIMediaSVG, &frameBuf);

ISHELL_GetDeviceInfo(pMe->a.m_pIShell, &di);

IDISPLAY_BitBlt(pme->m_pIDisplay,0,0,di.cxScreen,di.cyScreen, frameBuf,0,O,AEE_RO_C0PY );

IDISPLAY_UpdateEx(pMe->a.m_pIDisplay, FALSE);

break;

}

}

return;

}

对于SVG中的交互事件,在应用中要做相应的消息处理:

case EVT_KEY:

switch(wParam)

{

case AVK_DOWN:

nErr=IMEDIASVG_Focus(pme->pIMediaSVG,MM_SVG_FOCUS_EVENT_NEXT);

break;

case AVK_UP:

nErr=IMEDIASVG_Focus(pme->pIMediaSVG,MM_SVG_FOCUS_EVENT_PREVIOUS);

break;

case AVK_SELECT:

nErr=IMEDIASVG_Focus(pme->pIMediaSVG,MM_SVG_FOCUS_EVENT_ACTIVATE);

break;

case AVK_END:

nErr = IMEDIA_Stop(pMe->pIMediaSVG);

break;

}

在手机上测试支持SVG应用的时候,要注意手机可能不支持SVG的压缩状态。

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/wireless_com/archive/2010/07/21/5751903.aspx

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值