在webview中适合图像

时间:2010-10-13 12:30:59

标签: android webview

我计划在网页浏览中显示来自SD卡的图像,以便利用他内置的webview缩放功能。但是,我遇到的问题是显示大于屏幕尺寸的图像(例如1800x1200)以最初适合屏幕,就像在ImageView中一样。我希望图像首先完整显示,并为用户提供缩放控制。 我已经尝试将WRAP_CONTENT用于webview的宽度和高度,但这不起作用。 有任何想法吗? 以下是我正在使用的代码段:

    String path = getRealPathFromURI(mUriList.get(0)); // this gets the file path
    webView = (WebView) findViewById(R.id.WebView01);
 WebSettings settings= webView.getSettings();
 settings.setBuiltInZoomControls(true);
 settings.setSupportZoom(true);     
 webView.loadUrl("file://" + path);

4 个答案:

答案 0 :(得分:9)

 private WebView mWebView2;
    mWebView2 = (WebView)findViewById(R.id.webview);
    mWebView2.getSettings().setJavaScriptEnabled(true);
    mWebView2.getSettings().setLoadWithOverviewMode(true);
    mWebView2.getSettings().setUseWideViewPort(true);
    mWebView2.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
    mWebView2.setScrollbarFadingEnabled(true);
    mWebView2.loadDataWithBaseURL("file:///android_asset/", "<img src=\"banner5.png\" height=\"98%\" width=\"100%\"/>", "text/html", "utf-8", null);

图片位于资源文件夹

答案 1 :(得分:4)

如果你正确地写了你的HTML,你就不必做任何事情&#34; setLoadWithOverviewMode&#34;,&#34; setUseWideViewPort&#34;或&#34; setInitialScale&#34;。并且没有理由启用JavaScript。

这一行对我有用:

webView.loadDataWithBaseURL("file://" + directory, "<img src=\"" + name + "\" width=\"100%\"/>", "text/html", "utf-8", null);

下划线HTML代码为:

<img src=YourImage.png width="100%" />,通过不设置高度,将保留其宽高比。

答案 2 :(得分:3)

这对我有用:

webView.setInitialScale(30);
WebSettings webSettings = webView.getSettings();
webSettings.setUseWideViewPort(true);

答案 3 :(得分:0)

WebSettings settings = webView.getSettings();

settings.setUseWideViewPort(true);

settings.setLoadWithOverviewMode(true)