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.
- No más Text Reflow después de ampliar KitKat WebView
- WebView loadUrl sólo funciona una vez
- Android 4.0.1 rompe el almacenamiento local HTML 5 de WebView?
- Cómo traer el campo enfocado en la vista usando iscroll y Android WebView
- WebSocket en Android WebView
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.
- Cómo obtener el nombre de archivo al hacer clic en URL en la vista web
- Cómo obtener el url de la página actual desde la vista web en android
- Android WebView no cargar contenido mixto
- No se puede eliminar la imagen en div contenteditable en Android
- ¿Por qué el teclado no se mostrará en Fragmento con WebView?
- Escuchar Webview Key Events desde el teclado del software en la actividad de Android
- Android: dibuja el video de YouTube en SurfaceTexture
- Webview - cambiar la fuente de la página antes de mostrar el sitio web?
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.
- SetAdapter "La llamada requiere el nivel 11 de la API (el min actual es 8): android.widget.AbsListView # setAdapter"?
- Android WebView Javascript de los activos