2010-10-13 87 views
10

我打算在webview中顯示來自SD卡的圖像,以便利用他內置的webview的縮放功能。但是,我在使用大於屏幕尺寸的圖像(例如1800x1200)來顯示適合屏幕的問題(如ImageView中)時遇到了問題。我想要首先完整顯示圖像,並向用戶提供縮放控制。 我已經嘗試使用WRAP_CONTENT爲webview的寬度和高度,但那不起作用。 任何想法? 以下是我使用的代碼片段:在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); 
+0

的可能的複製[燦Android的WebView中自動調整圖像巨大?](http://stackoverflow.com/questions/3099344/can-androids-webview-automatically-resize-huge-images) – 2015-12-08 17:25:22

回答

3

該訣竅對我來說:

webView.setInitialScale(30); 
WebSettings webSettings = webView.getSettings(); 
webSettings.setUseWideViewPort(true); 
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); 

圖像在資產文件夾

4

如果你正確地寫你的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%" />,通過不設置的高度,它的縱橫比將被保留。

+0

不設置高度(或者覆蓋它到'auto')[爲我工作](https://github.com/FezVrasta/bootstrap-material-design/issues/768)。 – 2015-12-08 17:47:49

0
WebSettings settings = webView.getSettings(); 

settings.setUseWideViewPort(true); 

settings.setLoadWithOverviewMode(true)