2010-01-02 15 views
23

¿Es posible cargar una URL en una WebView y cambiar su tamaño para que se ajuste a la pantalla? Quiero decir que quiero hacer que la página web sea pequeña para que el usuario no tenga que desplazarse. es posible?WebView wrap-content

Respuesta

2

@ user289751, yalçın

amigos así como "Christopher" mencionado, el zoom se aleja demasiado no es algo que el usuario quisiera coz que va a reducir la legibilidad del contenido que se muestra ...

lugar me gustaría sugerir una alternativa ... su mejor intento de u configurar los controles de zoom ... Don sabe si funcionarán en 2.1 o no ...

webview.getSettings().setBuiltInZoomControls(true); 

esperanza resuelve este problema ur. .. porque ahora le está dando al usuario el control para cambiar el nivel de zoom ...

2

¿Ha intentado simplemente llamar al WebView.zoomOut() repetidamente hasta que devuelva false?

Además, me gustaría señalar que esta técnica que desea utilizar realmente depende de que la página web sea bastante corta. Si la página es larga y se aleja para encajarla completamente en la pantalla, ¡el usuario necesitará una vista muy buena! ;)

+0

hey thanx ... no lo he comprobado todavía pero supongo que lo intentaré una vez más con ciertas formalidades aquí ... Muchas gracias ... – JaVadid

0

Lo hice funcionar en un cuadro de diálogo usando WRAP_CONTENT para ambas dimensiones de WebView, desafortunadamente cuando la página web es demasiado grande, la vista web empuja todos mis otros widgets fuera de la pantalla.

¡El sistema de disposición de Android es muy poco intuitivo!

+0

¡No puede decir eso! Has usado WRAP_CONTENT, si lo necesitas para mantener el mismo tamaño y no cambiar de acuerdo con el tamaño de la página web, entonces ¿por qué no definir su altura y ancho ... Esto resolverá tu problema AFAIK! – JaVadid

18

También puede intentar establecer un algoritmo de diseño para el same.It trabajó para mí

webview.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); 
+2

Esto todavía se bloquea en la versión de Android OS debajo de 2.2. http://code.google.com/p/android/issues/detail?id=5024 – capecrawler

+0

Esto fue lo único que funcionó para mí porque realmente ajusta la página al contenido. Algunas de las otras soluciones funcionarán técnicamente, pero ocasionalmente obtendrá una página cargada alejándose innecesariamente lejos con espacio adicional alrededor del contenido. Una cosa a tener en cuenta es que LayoutAlgorithm estaba en desuso en las versiones posteriores a la 2.2, pero luego no fue detectado en 4.0. Dicho esto, todavía debería funcionar en los sdks en el medio. – Dave

+0

Esto no funciona bien para páginas que tienen una versión móvil – brendan

1
webview.setInitialScale(number); 

donde el 'número' más alto, más ampliada en la página será. comience con números más bajos (como 10) y ajústelo al gusto

16

Establezca la escala inicial en 1. A continuación, amplía para llenar la pantalla. No he probado cómo funciona esto en sitios web realmente altos (publicaciones de blog con muchos comentarios, por ejemplo), pero está trabajando en un Droid X y un HTC Aria con una página web estándar.

WebView.setInitialScale(1); 

Continuaré probando con diferentes páginas web, pero hasta ahora esta es la mejor solución que tengo para este problema.

EDIT: Probado con una página web obscenamente larga en Droid X y Aria y obtuve resultados positivos en ambos. Establecer la escala inicial en 0 parece desactivar todo, lo que resulta en una escala inicial de 100. Estoy contento con estos resultados, espero que esto ayude a otros a lidiar con este problema.

+1

Tuve un problema muy similar y esta solución terminó trabajando para mí. ¡Gracias! –

+0

me funciona también, – Bytecode

2

Pude contener toda la página en mi opinión haciendo lo siguiente. Primero establece el ancho y alto para wrap_content. A continuación, el establecimiento de la escala inicial para uno como este:

WebView webview = (WebView) currentActivity.findView(R.layout.web_view, R.id.webview); 
webview.setInitialScale(1); 

me di cuenta que podía conseguir esto para mantener el ancho al mínimo necesario para mostrar un tipo de letra legible y luego desplazarse a lo largo de la coordenada y cada vez que haciendo lo siguiente . Primero configure tanto el alto como el ancho para wrap_content.A continuación, establezca la densidad de zoom en su código de la siguiente manera:

WebView webview = (WebView) currentActivity.findView(R.layout.web_view, R.id.webview); 
webview.getSettings().setDefaultZoom(ZoomDensity.FAR); 

Probablemente esta sea la mejor solución la mayor parte del tiempo. Tenga en cuenta lo pequeño que sería la fuente si usted muestra la siguiente página web en su totalidad:

3
webview_settings.setLoadWithOverviewMode(true); 
webview_settings.setUseWideViewPort(true); 
webview_settings.setBuiltInZoomControls(true); 
8
wb.getSettings().setLoadWithOverviewMode(true); 
wb.getSettings().setUseWideViewPort(true); 
1

Use este código para cambiar el tamaño de vista web de acuerdo a la pantalla.

setScrollContainer (false);