2010-10-13 4 views
10

Planuję wyświetlać obrazy z karty SD w widoku internetowym, aby wykorzystać wbudowane funkcje powiększania widoku internetowego. Jednak mam problem z wyświetlaniem obrazów, które są większe niż rozmiar ekranu (na przykład 1800x1200), aby początkowo pasowały do ​​ekranu, tak jak w ImageView. Chcę, aby obraz był wyświetlany w całości na początku i zapewniać kontrolę zoomu użytkownikom. Próbowałem używać WRAP_CONTENT do wyświetlania szerokości i wysokości widoku, ale to nie działa. Jakieś pomysły? Poniżej znajduje się fragment kodu używam:Dopasuj obraz w widoku sieciowym

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

Możliwy duplikat [Can Android WebView automatycznie dopasowuje ogromne obrazy?] (Http://stackoverflow.com/questions/3099344/can-androids-webview-automatically-resize-huge-images) –

Odpowiedz

3

To załatwiło sprawę dla mnie:

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); 

obrazy znajdują się w folderze aktywów

4

Jeśli piszesz kod HTML poprawnie , nie musisz wykonywać żadnych "setLoadWithOverviewMode", "setUseWideViewPort" lub "setInitialScale". I nie ma absolutnie żadnego powodu, aby włączyć JavaScript.

To jedna linia pracował dla mnie:

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

Podkreślenie Kod HTML jest:

<img src=YourImage.png width="100%" /> przez nie wyznaczając wysokość, jego proporcje zostaną zachowane.

+0

Nie wyznaczając wysokość (lub przesłonięcie do 'auto') [pracował dla mnie] (https://github.com/FezVrasta/bootstrap-material-design/issues/768). –

0
WebSettings settings = webView.getSettings(); 

settings.setUseWideViewPort(true); 

settings.setLoadWithOverviewMode(true)