Android webView 支持 svg 渲染
Android webView support for svg rendering
我有一个使用 android 4.03 - API 级别 15 开发的应用程序。它有一个webView,我想用它来显示一个带有一些svg内容的html页面。一些svg内容直接嵌入到html中,一些使用javascript动态渲染。
我有一台运行安卓 7 的华为 S2.2 平板电脑。我添加了一个向后兼容包,以便我可以在选项卡中运行我的应用程序。
现在,当我创建 html 页面并在 dektop 浏览器中运行它时,它会完美地呈现所有 svg 连接。当我在平板电脑中运行该应用程序时,它不显示任何 svg 内容。它只显示白色背景。但是当我在我的朋友 nexus 7 平板电脑上尝试相同的应用程序时,android 4.3 它完美地显示了 webView 中的所有 svg 内容。
我使用此代码初始化网络视图
WebView mapView;
mapView = (WebView) findViewById(R.id.mapview);
mapView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
}
});
WebSettings s = mapView.getSettings();
s.setLoadWithOverviewMode(true);
s.setLoadsImagesAutomatically(true);
s.setUseWideViewPort(true);
s.setJavaScriptEnabled(true);
s.setSupportZoom(true);
s.setBuiltInZoomControls(true);
File externalStorage = Environment.getExternalStorageDirectory();
String url = "file:///" + externalStorage + "/floor_one.html";
mapView.loadUrl(url);
安卓 2.2 网络视图与 SVG 是否有任何兼容性问题?
SVG 在 Android 3.0 之前不受支持,因此您必须找到一些解决方法。
这篇博文解释了SVG的两个Javascript填充。
http://www.kendoui.com/blogs/teamblog/posts/12-02-17/using_svg_on_android_2_x_and_kendo_ui_dataviz.aspx
如果你添加这个:
webView.getSettings().setPluginState(PluginState.ON);
我能看到的唯一一个你没有的参数可能会产生影响。
相关文章:
- SVG的渲染是否可以推迟到我完成对它的操作
- 使用HTML渲染d3 SVG图形
- 跨浏览器d3.js SVG线条渲染日期排序
- 在浏览器中渲染巨大的交互式SVG
- Firefox使用drawImage将SVG图像渲染到HTML5画布时出错
- Svg与Canvas以及圆形对象的渲染时间
- 使用多个子容器进行 SVG 渲染
- 使用 SVG 渲染引擎将 svg 转换为 png 时出现异常
标记会中断 SVG 标记端渲染 - 如何在页面渲染期间更改颜色 SVG .
- 改进了画布中 SVG 路径渲染的性能
- 嵌入/渲染异步加载服务器端生成的 SVG 时出现问题
- 手动渲染 SVG 字形
- 在Raphael Javascript库中渲染SVG多边形
- 从FirefoxDriver和HtmlUnitDriver获取的渲染SVG的差异
- D3渲染SVG不出现在屏幕上
- 如何用PixiJS渲染SVG
- 浏览器渲染svg<clipPath>至<剪辑路径>
- 在画布上渲染 svg 图像
- D3渲染SVG.我如何以编程方式获得SVG