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的压缩状态。
分享到:
相关推荐
目录:(BREW 初级开发者 教程):第1章 BREW技术特点与发展趋势第2章 BREW SDK简介 第3章 BREW开发基础第4章 BREW手机简介 第5章 ISHELL第6章 IDISPLAY使用简介 第7章 ISTATIC第8章 IMENUCTL 第9章 IImage第10章 ...
BREW高阶技术培训资料及code 第1章 BREW平台与演进.pdf 第2章 BREW3.1图像处理高级编程.pdf 第3章 BREW多媒体接口.pdf 第4章 IVocoder接口介绍.pdf 第5章 ICamera接口.pdf 第6章 BREW 常用接口介绍.pdf 第7章 BREW ...
第1章BREW平台及演进 第2章BREW3.1图像处理高级编程 第3章BREW多媒体接口 第4章IVocoder接口 第5章ICamera接口 第6章常用接口介绍 第7章BREW 3.1 文件系统 第8章BREW 3.1 SMS新接口使用方法 第9章BREW 语音呼叫业务 ...
Brew高阶技术培训资料及代码 第1章 BREW平台与演进.pdf 第2章 BREW3.1图像处理高级编程.pdf 第3章 BREW多媒体接口.pdf 第4章 IVocoder接口介绍.pdf 第5章 ICamera接口.pdf 第6章 BREW 常用接口介绍.pdf 第7章 BREW ...
指南针SVG填充 指南针插件,可为新的浏览器提供SVG背景图像,并为旧的浏览器提供PNG后备功能。 项目详情 用例 SVG非常好,因为它们是矢量格式,但是某些浏览器不支持它们。 该脚本可自动将SVG转换为PNG,并为您提供...
mobius-移动报告图形提取器 请阅读:截至2020年4月16日,Google已发布的数据。 以后将不会维护此工具。 用于从任何(182)中提取每个图形到逗号分隔值(CSV)文件中。 该代码在2020年4月3日(星期五)发布的COVID-...
The code generation workflow is a complex brew of gnu make, perl and python, that works best on Linux or Mac. For most end-users of GLEW the official releases are the best choice, with first class ...
aws_key -s your_aws_secret_key -f viz.svg --color=true使用现有的security_groups.json(使用aws-cli创建)生成图 $ aws_security_viz -o data/security_groups.json -f viz.svg --color生成网页视图 $ aws_...
$ brew install graphviz --with-freetype --with-librsvg 产生图 下一步运行以下命令: $ dot -T svg -O filename.dot 文献资料 执照 本项目是根据知识共享署名4.0国际许可证获得许可的。 请参阅或整个文档。 ...
在Finder中,选择要转换的svg,右键单击,然后选择“ Pdfify”。 完美转换由Figma导出的SVG用于iOS项目。 内部使用rsvg-convert进行转换。 使用自制软件安装rsvg-convert: brew install librsvg
初始开发设置苹果系统首先安装Homebrew,请按照此处的说明进行操作: : 安装自制软件服务: brew tap homebrew/services 安装nvm: brew updatebrew install nvmsource $( brew --prefix nvm ) /nvm.sh 安装节点...
App Clip Code Generator macOS应用程序,使用SwiftUI构建App Clip Code Generator macOS应用程序描述使用SwiftUI构建,支持macOS 11 Big Sur及以上导出到SVG和PNG使用自定义颜色或从Apple中选择模板自定义前景色和...
# On Macbrew tap bramstein/webfonttoolsbrew updatebrew install woff2brew install fontforge --with-pythonbrew install eot-utilsgem install fontcustom# On Linuxsudo apt-get install zlib1g-dev ...
使用gulp任务优化PNG,JPEG,GIF,SVG图像。 安装 $ npm install --save-dev gulp-image 外部倾向 在macOS上brew install libjpeg libpng 在Ubuntu上apt-get install -y libjpeg libpng npm install -g windows-...
Graphviz :用于在SVG中生成图形的工具。 $ sudo apt-get install graphviz # or yum install or brew install安装$ pip install ansible-playbook-grapher用法$ ansible-playbook-grapher tests/fixtures/example....
RailRoady RailRoady生成Rails 3/4/5模型(ActiveRecord,Mongoid,Datamapper)和控制器UML图作为跨平台.svg文件以及DOT语言。 代码基于原始的“铁路” gem,修补程序RailRoady RailRoady生成Rails 3/4/5模型...
在svg中导出的图标进入src / _icons / 开发环境安装 用于编译字体。 安装需要Ruby 1.9.3+ , WOFF2和FontForge以及Python的控制台功能。 # En Mac (requiere tener instalado [Homebrew](https://brew.sh/index_es...
创建svg版本dot -Tsvg diagram.dot -o diagram.svg为方便起见,我将此svg添加到了我们的标记中注意:您可以使用cmd-f搜索svg示例:cmd -f Rust 您会找到1个实例例如:cmd -f bash 您会找到3个实例由于有多个节
例如编辑connection_overview图: cd static/css/img/diagramsvi connection_overview.mmd# Compile diagrams:mmdc -i connection_overview.mmd -o connection_overview.svg执照太阴暗了。 现在,tokio网站已被大量...
您可以下载或使用安装它: brew install --cask healthi 。 Linux 如果您使用的是Debian,则可以从下载.deb文件。 如果您希望其他软件包可用,请打开以将其包括在内。 目标位于package.json > build > linux > ...