Ajuste de los contenidos de la página web dentro de una vista web (Android)

Pregunta simple.

Estoy tratando de estirar el contenido de una webview para que la página web entera dentro de es visible. Es decir, sin desplazamiento. He mirado a través de los documentos, pero no puedo encontrar ningún método aparte de controles de zoom y 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, sólo mostrará el centro de la página.

He aquí el fragmento de código que he

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

Esto parece ser una alternativa a lo que estoy tratando de hacer, pero no puedo conseguir que el zoom lo suficientemente lejos.

Así que la gente puede usar esto como un tutorial en el futuro.

Hay un montón de maneras de manejar zooms en android y las páginas de ajuste. Puede ser bastante temperamental a veces y algunos métodos funcionan mejor que otros.

Para la mayoría de la gente, solo usa

WebView x;

 x.setInitialScale(1); 

Este es el zoom de furtheset posible. Pero para algunos sitios que sólo se ve puro feo.

Esta fue la segunda versión que encontré

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

Eso es un agradable todo redonda de lo que parece sólo zoom fuera lo suficientemente lejos para un montón, pero aún no lo que estaba buscando.

Y ahora es 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 totalmente alejado

 setUseWideViewPort(true) 

Hace que la vista Web tenga una vista normal (como un navegador de escritorio normal), mientras que cuando es falsa, la vista web tendrá una ventana restringida a sus propias dimensiones (de modo que si la vista web es 50px * 50px, la vista será del mismo tamaño)

He intentado todos los métodos anteriores, pero en mi caso nada funcionó hasta que me enteré:

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

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

  • Monkeyrunner no toca la vista web
  • ShouldOverrideUrlLoading se llama SOLAMENTE para ALGUNAS páginas web
  • Cómo inyectar un script javascript en una vista web antes de la carga html en android 7
  • Establecer cookies de forma programática en Crosswalk WebView en Android
  • Cómo habilitar Flash Plugin en Webview?
  • Android NDK: compilación personalizada de WebView desde el origen
  • Cómo proporcionar entrada a un campo de entrada webView mediante programación en Android Kitkat (4.4)
  • ¿Hay una manera de pre-cache de una página web para ver con un Android WebView?
  • Acceso al código JS desde una aplicación nativa de Android
  • ¿Pasar la URL de WebView a ShareActionProvider?
  • WebView Atrás, Actualizar, Reenviar? Simplemente no funciona!
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.