2012-04-19 7 views
9

Me gustaría usar una WebView para mostrar imágenes potencialmente grandes (para aprovechar la administración de la memoria). Para la prueba estoy cargando este código en la vista WebPonga una imagen dentro de una vista web y calce con el ancho

<head></head> 
<body> 
    <img alt="test" src="file:///android_asset/cute-cat-sleeping.jpg"> 
</body> 

El problema es que si lo cargo en una red "tal cual". El WebView solo permite alejarse hasta que la primera dimensión de la imagen se ajusta en la pantalla. En este ejemplo, la altura de la imagen se muestra totalmente en el WebView y luego no más de zoom permite:

No zoom no setUseWideViewPort

Como se puede ver este modo no permite una correcta visualización de la imagen global, a pesar de que cuando la imagen se ampliará el comportamiento en la derecha y esquinas inferiores son correctas como se puede ver aquí

correct zoom display

Así que probé los .getSettings (WebView)(). setUseWideViewPort (verdadero) y el resultado es que me puede alejar MES re que el ancho de la imagen

with setUseWideViewPort

y el comportamiento ampliada no es correcto en los bordes inferior derecha:

zoom with setUseWideViewPort

En resumen: Me gustaría que el máximo alejar posible estar ImageWidth = ancho vista web y el comportamiento zoom como en la segunda imagen:

enter image description here

respuestas completas y/o Utiles serán favorecido

EDIT: Bounty abierto para Vinayak.B

+1

seguro. Pero intenta editar el html. establecer el ancho de al 100%. – Shaiful

+0

hace un comportamiento extraño con el zoom como saltos a diferentes zonas que los zoom = ( – Addev

+0

¿Cabe en la ventana? Como la última imagen? Tal vez puede controlar el zoom u otro comportamiento usando javascript & css. – Shaiful

Respuesta

22

Using Viewport Metadata puede ayudar a hacer esto

La ventana es el área en la cual se extrae su página web.Aunque área visible de la ventana coincide con el tamaño de la pantalla, la ventana tiene sus propias dimensiones que determinan el número de píxeles disponibles a una página web

Proveedores continuación

WebSettings settings = webView.getSettings(); 
settings.setUseWideViewPort(true); 
settings.setLoadWithOverviewMode(true); 
5

Cargar archivo HTML en vista Web y puso su imagen en la carpeta de recursos y lea ese archivo de imagen utilizando HTML.

<htm> 
    <table> 
    <tr> 
     <td> 
      <img src="cat.gif" width="100%" alt="Hello"> 
     </td> 
    </tr> 
</table> 
</html> 

Ahora carga el archivo HTML en Webview

webview.loadUrl("file:///android_asset/abc.html"); 

Otra forma

si utiliza LinearLayout, puede tomar un parámetro de fondo que puede ser de un color o de un recurso.

Por lo tanto, en el archivo main.xml contiene vista web. sólo tiene que añadir un

android:background="@+drawable/backgroundmain" 

y utilizar

web.setBackgroundColor(0); 

Para hacer la vista web transparente para ver la imagen de fondo detrás.

+1

Causa problemas técnicos de zoom. –

4

aquí está la solución de establecer el img ancho de etiqueta a 100% en código HTML y luego cargarla en su vista web utilizando loadDataWithBaseURL(null, htnlString, "text/html", "UTF-8", null); método

probar este código

String htnlString = "<!DOCTYPE html><html><body style = \"text-align:center\"><img src=\"http://shiaislamicbooks.com/books_snaps/UR335/1.jpg\" alt=\"pageNo\" width=\"100%\"></body></html>"; 
yourWebView.loadDataWithBaseURL(null, htnlString, "text/html", "UTF-8", null); 
No
Cuestiones relacionadas