2012-01-29 14 views
24

Pregunta simple.Ajustar el contenido de la página web dentro de una vista web (Android)

Estoy tratando de estirar el contenido de una vista web para que toda la página web esté visible. es decir, sin desplazamiento. He revisado los documentos, pero no puedo encontrar ningún método aparte de los controles de zoom y la escala setinitialscale.

El problema con setinitialscale en este caso es que funciona de manera diferente para diferentes sitios.

Ejemplo: 1: wikipedia se cargará como se esperaba con el zoom lo suficientemente lejos. 2: Google, sin embargo, solo mostrará el centro de la página.

Aquí está el fragmento de código que tengo

test1 = (WebView) findViewById(R.id.webview_test_1); 
    test2 = (WebView) findViewById(R.id.webview_test_2); 
    test3 = (WebView) findViewById(R.id.webview_test_3); 

    test1.getSettings().setJavaScriptEnabled(true); 
    test2.getSettings().setJavaScriptEnabled(true); 
    test3.getSettings().setJavaScriptEnabled(true); 

    test1.setInitialScale(12); 
    test2.setInitialScale(12); 
    test3.setInitialScale(12); 

    test1.loadUrl("http://developer.android.com/resources/tutorials/views/hello-tablelayout.html"); 
    test2.loadUrl("http://www.wikipedia.org/"); 
    test3.loadUrl("http://www.google.com"); 

test1.getSettings().setDefaultZoom(ZoomDensity.FAR); 

Ésta parece ser una alternativa a lo que estoy tratando de hacer, pero no puedo conseguir para hacer un zoom lo suficientemente lejos.

+0

ahora puede caber la página en webview – Ravi

Respuesta

95

Así las personas pueden usar esto como un tutorial en el futuro.

Hay muchas formas de manejar los acercamientos en las páginas de Android y de ajuste. Puede ser bastante temperamental a veces y algunos métodos funcionan mejor que otros.

Para la mayoría de la gente, sólo tiene que utilizar esto:

WebView x; 

x.setInitialScale(1); 

Este es el zoom furtheset posible. Pero para algunos sitios, simplemente se ve muy feo.

Esta fue la segunda versión que encontré

test1.getSettings().setDefaultZoom(ZoomDensity.FAR); 

eso es un buen todo terreno que parece que acaba de alejar lo suficiente como para muchos, pero todavía no lo que yo estaba buscando.

Y ahora aquí está la solución final que tengo.

x.getSettings().setLoadWithOverviewMode(true); 
x.getSettings().setUseWideViewPort(true); 

Básicamente lo que estos hacen se responde en otra pregunta como esta.

setLoadWithOverviewMode(true) 

Carga el WebView zoom completamente fuera

setUseWideViewPort(true) 

Hace que la vista Web tiene una ventana normal (como por ejemplo un navegador de escritorio normal), mientras que cuando es falsa la vista web tendrá una ventana limitada a él es poseer dimensiones (por lo que si la vista web es 50px * 50px la ventana gráfica será el mismo tamaño)

+0

Si alguien puede decir esto mejor, entonces lo aceptaré como el correcto. Estoy en contra de marcar mis propias respuestas, pero daré la oportunidad a los demás de que – OVERTONE

+2

me funcione. ¡Gracias! – iRunner

+0

+1 la mejor explicación de estas configuraciones encontradas hasta el momento en este sitio –

10

he intentado todos los métodos anteriores, pero en mi caso nada funcionó hasta que descubrí:

<meta name="viewport" content="user-scalable=no"/> 

elimine esta línea en el archivo html o simplemente cambie user-scalable = yes, y todo estará bien. Me tomó casi un día descubrir esta línea loca.

+0

¿Dónde puedo cambiar o agregar esto? –

+0

Es una metaetiqueta en el archivo html. Puede abrir ese archivo html y editarlo directamente, en la parte del encabezado. –

+0

respuesta increíble. me salvó. ; - * – Sarasranglt

Cuestiones relacionadas