In WebSettings gibt es einige Methoden, die sich auf den Zoom beziehen:
- WebSettings.setSupportZoom
- WebSettings.setBuiltInZoomControls
Ich habe festgestellt, dass sie auf einigen Geräten anders funktionieren. Zum Beispiel auf meinem Galaxy S pinch to zoom ist standardmäßig aktiviert, aber auf LG P500 ist es deaktiviert (Und jetzt weiß ich nicht, wie NUR pinch to zoom zu aktivieren, aber verstecken Zoom-Tasten).
Auf P500, wenn ich anrufe setBuiltInZoomControls(true)
Ich bekomme beide Varianten zum Laufen (Multitouch und Tasten).
Wie kann man den Multitouch-Zoom aktivieren und die Zoom-Tasten auf Geräten wie dem LG P500 deaktivieren? (Ich weiß auch, dass es die gleichen Probleme auf HTC-Geräten gibt)
UPDATE: Hier ist der fast vollständige Code für die Lösung
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;
}
}
Dieser Code befindet sich in meinem onTouchEvent
überschriebene Methode der WebView.