Il y a quelques méthodes dans WebSettings liées au zoom :
- Paramètres Web.setSupportZoom
- WebSettings.setBuiltInZoomControls (Réglages Web)
J'ai remarqué qu'ils fonctionnent différemment sur certains appareils. Par exemple, sur mon Galaxy S, le pincement pour zoomer est activé par défaut, mais sur le LG P500, il est désactivé (et maintenant je ne sais pas comment activer SEULEMENT le pincement pour zoomer, mais cacher les boutons de zoom).
Sur P500 quand j'appelle setBuiltInZoomControls(true)
J'ai réussi à faire fonctionner ces deux variantes (multitouch et boutons).
Comment activer le zoom multitouch et désactiver les boutons de zoom sur des appareils tels que le LG P500 (je sais aussi que les mêmes problèmes se posent sur les appareils HTC) ?
UPDATE : Voici le code presque complet de la solution
if (ev.getAction() == MotionEvent.ACTION_DOWN ||
ev.getAction() == MotionEvent.ACTION_POINTER_DOWN ||
ev.getAction() == MotionEvent.ACTION_POINTER_1_DOWN ||
ev.getAction() == MotionEvent.ACTION_POINTER_2_DOWN ||
ev.getAction() == MotionEvent.ACTION_POINTER_3_DOWN) {
if (multiTouchZoom && !buttonsZoom) {
if (getPointerCount(ev) > 1) {
getSettings().setBuiltInZoomControls(true);
getSettings().setSupportZoom(true);
} else {
getSettings().setBuiltInZoomControls(false);
getSettings().setSupportZoom(false);
}
}
}
if (!multiTouchZoom && buttonsZoom) {
if (getPointerCount(ev) > 1) {
return true;
}
}
Ce code est dans mon onTouchEvent
méthode surchargée du WebView.
7 votes
J'ai le même problème à quoi servent les variables multiTouchZoom et buttonsZoom ?
1 votes
@Luizje Je sais que c'est vieux, mais au cas où quelqu'un d'autre le trouverait : Changez getPointerCount(ev) en ev.getPointerCount() et ça marchera !
1 votes
Je ne suis pas sûr que quelqu'un en ait encore besoin, mais jetez un coup d'oeil à mon "hack around". Il fonctionne jusqu'à Android 1.6
0 votes
@Evgeny Que sont les variables multiTouchZoom et buttonsZoom ? Comment avez-vous obtenu des événements pour les boutons de zoom et le multitouchZoom ? Si cela ne vous dérange pas, pouvez-vous s'il vous plaît poster le code complet ici ?