【问题标题】:Showing an svg in Android using a webview won't zoom out after zooming in使用 webview 在 Android 中显示 svg 放大后不会缩小
【发布时间】:2014-02-13 01:33:39
【问题描述】:

我在 android webview 中显示一个 svg。有了这个,我遇到了几个问题。

我收到有关人们在放大后无法缩小的报告。我不想发布另一个版本,直到我知道我已经解决了问题,但我的测试设备没有这个问题.每当我放大时,我都可以立即缩小。不过,我正在 Android 4.4 上进行测试,我认为这引入了 chrome 作为默认的 webview。给我错误的设备至少运行 api 级别 15,因为这是我在清单中设置的。

这是我上面列出的问题的代码。

private WebView myWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cartoon);


    myWebView = (WebView) findViewById(R.id.webView);

    myWebView.getSettings().setBuiltInZoomControls(true);
    myWebView.getSettings().setDisplayZoomControls(false);
    myWebView.getSettings().setLoadWithOverviewMode(true);
    myWebView.setVerticalScrollBarEnabled(false);
        myWebView.setInitialScale(50);

    myWebView.setHorizontalScrollBarEnabled(false);

    myWebView.loadUrl("file:///android_res/raw/cartoon.svg");

所以我的问题是,有谁知道为什么我的用户在放大后不允许缩小?

【问题讨论】:

    标签: android svg webview android-webview android-websettings


    【解决方案1】:

    试试这个:

    myWebView = (WebView) findViewById(R.id.webView);
    myWebView.setInitialScale(1);
    WebSettings settings = myWebView.getSettings();
    settings.setSupportZoom(true);
    settings.setDefaultZoom(WebSettings.ZoomDensity.FAR);
    settings.setUseWideViewPort(true);
    myWebView.getSettings().setBuiltInZoomControls(true);
    myWebView.getSettings().setDisplayZoomControls(false);
    myWebView.setVerticalScrollBarEnabled(false);
    
    myWebView.setHorizontalScrollBarEnabled(false);
    

    【讨论】:

    • 需要为 setDisplayZoomControls 添加版本检查: if (android.os.Build.VERSION.SDK_INT >= 11) { myWebView.getSettings().setDisplayZoomControls(false); }
    猜你喜欢
    • 1970-01-01
    • 2013-05-11
    • 2014-08-14
    • 1970-01-01
    • 2013-01-15
    • 2013-03-20
    • 1970-01-01
    • 2014-05-25
    • 2011-01-04
    相关资源
    最近更新 更多