2010-10-13 29 views
10

Estoy planeando mostrar las imágenes de la tarjeta SD en una vista web para aprovechar las capacidades de zoom de la vista web. Sin embargo, me enfrenta un problema al mostrar imágenes que son más grandes que el tamaño de la pantalla (por ejemplo, 1800x1200) para que quepan inicialmente en la pantalla, como en un ImageView. Quiero que la imagen se muestre completa al principio y proporcione control de zoom a los usuarios. He intentado usar WRAP_CONTENT para ancho y alto de la vista web, pero eso no funciona. Alguna idea? siguiente es un fragmento de código que estoy utilizando:Ajustar la imagen en la vista web

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

duplicado posible de [WebView de Can Android automáticamente el tamaño de las imágenes grandes?] (Http://stackoverflow.com/questions/3099344/can-androids-webview-automatically-resize-huge-images) –

Respuesta

3

Que hizo el truco para mí:

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

Las imágenes son en la carpeta de activos

4

Si se escribe el código HTML correctamente , no tiene que hacer ningún "setLoadWithOverviewMode", "setUseWideViewPort" o "setInitialScale". Y no hay absolutamente ninguna razón para habilitar JavaScript.

Ésta línea trabajó para mí:

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

El código HTML que subraya es:

<img src=YourImage.png width="100%" />, si no se establece una altura, se mantendrá la relación de aspecto.

+0

No establecer una height (o anulándolo a 'auto') [funcionó para mí] (https://github.com/FezVrasta/bootstrap-material-design/issues/768) también. –

0
WebSettings settings = webView.getSettings(); 

settings.setUseWideViewPort(true); 

settings.setLoadWithOverviewMode(true) 
Cuestiones relacionadas