0
public class TWVSVGMainActivity extends Activity {  
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WebView webView = new WebView(this);
    setContentView(webView);
    webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setRenderPriority(RenderPriority.HIGH);
    webView.getSettings().setUseWideViewPort(true);
    webView.getSettings().setBuiltInZoomControls(true);     
    webView.getSettings().setDisplayZoomControls(false);
    webView.loadUrl("file:///android_asset/003.svg");
}}

缩放 SVG 图像后,它被像素化。

我想将 svg 加载到 WebView,并且我希望 *.svg 文件中的文本不被像素化。

我错过了什么?

4

2 回答 2

0

这就是我如何让我的 SVG 文件显示在 Jelly Bean WebView 中:

我使用 embed 标记将 SVG 包含到 HTML 文档中:

<embed width="100%" height="100%" src="{{ svg_url }}" type="image/svg+xml"/>

包含宽度和高度属性非常重要,否则 SVG 会在 Jelly Bean WebView 中出现截断。

感谢 Chab(见上文),我还必须在 HTML 页面中包含一些随机文本。像这样的东西起到了作用:

<span style="color:White;">hidden</span>

我还必须将<meta name="viewport" content="initial-scale = 1.0, user-scalable = yes">标签与webView.getSettings().setUseWideViewPort(true);SVG 一起设置,以便在不切断部分图像的情况下进行缩放。

希望有帮助

于 2014-02-25T11:59:39.393 回答
0

这就是我能够在 WebView 中缩放 SVG 并最初完全缩小显示它的原因:

setInitialScale(1);
WebSettings settings = getSettings();
settings.setSupportZoom(true);
settings.setDefaultZoom(WebSettings.ZoomDensity.FAR);
settings.setDisplayZoomControls(true);
settings.setBuiltInZoomControls(true);
settings.setUseWideViewPort(true);
于 2013-07-23T10:32:59.833 回答