我打算在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);
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
图像位于assets文件夹中
如果您正确编写 HTML,则不必执行任何“setLoadWithOverviewMode”、“setUseWideViewPort”或“setInitialScale”。并且绝对没有理由启用 JavaScript。
这一行对我有用:
webView.loadDataWithBaseURL("file://" + directory,
"<img src=\"" + name + "\" width=\"100%\"/>", "text/html", "utf-8", null);
带下划线的 HTML 代码是:
<img src=YourImage.png width="100%" />, 通过不设置高度,其纵横比将保持不变。
这对我来说很有效:
webView.setInitialScale(30);
WebSettings webSettings = webView.getSettings();
webSettings.setUseWideViewPort(true);
Run Code Online (Sandbox Code Playgroud)