2010-10-13 3 views
10

Я планирую отображать изображения с SD-карты в веб-просмотре, чтобы воспользоваться преимуществами встроенных возможностей масштабирования webview. Тем не менее, я столкнулся с проблемой с отображением изображений, размер которых больше размера экрана (например, 1800x1200) для первоначального размещения на экране, например, в ImageView. Сначала я хочу, чтобы изображение отображалось в полном объеме и обеспечивало управление зуммированием для пользователей. Я попытался использовать WRAP_CONTENT для ширины и высоты webview, но это не работает. Любые идеи? Ниже приведен фрагмент кода, я использую:Fit image in 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

Возможный дубликат [WebView Can Android автоматически изменить размер огромные изображения?] (Http://stackoverflow.com/questions/3099344/can-androids-webview-automatically-resize-huge-images) –

ответ

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

Не установив height (или переопределить его на 'auto') [работал для меня] (https://github.com/FezVrasta/bootstrap-material-design/issues/768). –

0
WebSettings settings = webView.getSettings(); 

settings.setUseWideViewPort(true); 

settings.setLoadWithOverviewMode(true)