Usar el ancho de la ventana de vista de meta en la vista Web de Android

Me gustaría usar la etiqueta de viewport para ajustar el contenido html en un WebView.

<meta name='viewport' content='width=640'/> 

Esto parece funcionar bien en el navegador Chrome, pero no escala para encajar en el WebView. Hice una actividad de prueba simplificada:

 public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //-------------------------------------------------- // Create a simple html page including viewport tag. //-------------------------------------------------- String html = "<!DOCTYPE html>" + "<html>" + "<head>" + "<meta name='viewport' content='width=640'/>" + "<title>Viewport Test</title>" + "</head>" + "<body style=\"margin: 0px;\">" + "<div style=\"width: 600px; height: 600px; border: 20px solid green; background-color: red;\"></div>" + "</body>" + "</html>"; //----------------------------------- // Place html in WebView. //----------------------------------- WebView webView = new WebView(this); webView.loadData(html, "text/html", "utf-8"); setContentView(webView); //----------------------------------- // Launch Chrome with the same html. //----------------------------------- Intent intent = new Intent(Intent.ACTION_VIEW); intent.setComponent(ComponentName.unflattenFromString("com.android.chrome/com.android.chrome.Main")); intent.setData(Uri.parse("data:text/html;charset=utf-8;base64," + Base64.encodeToString(html.getBytes(), Base64.NO_WRAP))); startActivity(intent); } } 

¿Puede alguien explicar por qué, o sugerir una solución?

OK, tienes que usar:

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

Pero también, se rompe si establece user-scalable = 0 como este:

  <meta name='viewport' content='width=640, user-scalable=0'/> 
  • ¿Por qué openFileChooser en WebChromeClient está oculto de los documentos? ¿Es seguro usar este método?
  • Webview de Android: detecta cuándo finaliza la renderización
  • Ocultar la barra de desplazamiento en WebView
  • La precarga de Webview de Android no funciona con Nexus
  • Webview guardar el problema de rotación de contraseña
  • Cada navegador basado en WebKit bloquea sitios usando Omniture. ¿Por qué?
  • ¿Cuáles son los valores de retorno válidos para una interfaz Javascript en un WebView de Android?
  • Error al llamar al método en NPObject! En Android 2.2
  • Interceptar solicitud de fuente de video HTML5 en Android WebView
  • Desactivación nativa de WebView: libwebviewchromium.so "Operación no permitida" - ILL_ILLOPC
  • JQuery no funciona en WebView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.