Android中的SVG支持

时间:2011-07-13 10:20:41

标签: android webview svg

我们将开发一个用于显示autocad的Android应用程序 以svg格式绘制文件,其中使用了ecma脚本。我们有 在模拟器中测试了应用程序并在webview中打开了svg文件。 我们的问题是XML标签中的ecmascript不会在webview中执行 在android中。我们知道android只支持3.0版的SVG。是否 它不支持svg中的ecmascript?

提前致谢

        final String mimeType = "text/html"; 
        final String encoding = "utf-8"; 
        final String html = "<p><img height=\"600px\" width=\"600px \"src=\"file:///android_asset/drawing3.svg\" /></p>"; 


        WebView wv = (WebView) findViewById(R.id.webview_component); 
        wv.getSettings().setJavaScriptEnabled(true); 
        wv.loadDataWithBaseURL("fake://not/needed", html, mimeType, encoding, ""); 

Ragards Shibu

1 个答案:

答案 0 :(得分:11)

Android(3.0及更高版本)支持带有ECMAScript的SVG。

问题是当在<img>标记中添加svg时,svg中的ecmacript不会被执行。我还在几个桌面浏览器中对它进行了测试,当svg在<img>标签中时,ecmascript没有在其中任何一个中执行。

如何在html中添加svg有5种方法:

  1. 将其添加为包含<img>标记
  2. 的图像
  3. 使用<embed>标记
  4. 进行嵌入
  5. 使用<iframe>标记
  6. 进行嵌入
  7. 使用<object>标记
  8. 进行嵌入
  9. 将svg代码直接嵌入html(使用<svg>标记)
  10. 仅当svg嵌入<embed><iframe><object>标记时,才会执行svg中的ecmascript。在直接在<svg>标记中嵌入svg代码时,可能需要进行一些代码更改(例如,将脚本移动到html中的其他位置),但它也应该有效。