web-dev-qa-db-fra.com

Comment activer les contrôles de zoom et le zoom par pincement dans une WebView?

L'application de navigateur par défaut pour Android affiche les commandes de zoom lorsque vous faites défiler et permet également le zoom par pincement. Comment puis-je activer cette fonctionnalité pour ma propre vue Web?

J'ai essayé:

webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);

mais aucune des fonctionnalités n'est activée en conséquence. Btw, j'ai défini un WebChromeClient et un WebViewClient pour la vue Web si cela fait une différence.

Merci!

115
Robert Bana

Étrange. Dans la méthode OnCreate, j'utilise

webView.getSettings().setBuiltInZoomControls(true);

Et ça marche bien ici. Quelque chose de particulier dans votre webview?

261
zov

Utilisez ceux-ci:

webview.getSettings().setBuiltInZoomControls(true);
webview.getSettings().setDisplayZoomControls(false);
80
Dario Bruzzese

Vérifiez si vous n'avez pas ScrollView enveloppant votre Webview.

Dans mon cas, c'était le problème. Il semble que ScrollView gêne le geste de pincement.

Pour résoudre ce problème, il suffit de placez votre WebView en dehors de ScrollView.

33
Tiago

Dans OnCreate, ajoutez:

 webview.getSettings().setSupportZoom(true);
 webview.getSettings().setBuiltInZoomControls(true);
 webview.getSettings().setDisplayZoomControls(false);

Dans le document html, ajoutez:

<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2, user-scalable=yes">
</head>
</html>

Dans javascript, omettez:

//event.preventDefault ? event.preventDefault() : (event.returnValue = false);
2
Jarir

Essayez ce code, je travaille bien.

 webSettings.setSupportZoom(true);
 webSettings.setBuiltInZoomControls(true);
 webSettings.setDisplayZoomControls(false);
1
Muhammed Haris

Pour activer les contrôles de zoom dans une vue Web, ajoutez la ligne suivante:

webView.getSettings().setBuiltInZoomControls(true);

Avec cette ligne de code, vous obtenez le zoom activé dans votre WebView. Si vous souhaitez supprimer les boutons de zoom avant et de zoom arrière fournis, ajoutez la ligne de code suivante:

webView.getSettings().setDisplayZoomControls(false);
0
Anubhav