Programmatisch zoom in einem android WebView
Muss ich einen Weg finden, um programmgesteuert zoom aus einem WebView auf android. Hintergrund: ich erstellte eine phonegap/cordova web-app, die hat ein festes layout. Ich benutze diese Einstellungen, um die korrekte Darstellung der app auf allen Geräten:
this.appView.getSettings().setUseWideViewPort(true);
this.appView.getSettings().setLoadWithOverviewMode(true);
this.appView.getSettings().setSupportZoom(true);
this.appView.getSettings().setDefaultZoom(ZoomDensity.FAR);
this.appView.getSettings().setBuiltInZoomControls(true);
this.appView.setInitialScale(0);
So weit es funktionierte gut, bis ein text-input-Feld den Fokus erhält. Dann die app wird neu skaliert, und es ist unmöglich, um wieder den richtigen Blick. Ich durchsucht, und arbeitete an diesem problem seit über einem Tag nun versucht, viele mögliche Lösungen, aber keine für mich gearbeitet. Der Ansatz, den ich arbeite jetzt für einen systemeigenen Aufruf, wenn die text-input-Feld verliert Fokus und dann um den zoom rückgängig. Aber ich weiß nicht, einen Weg, um den zoom rückgängig zu machen.
webView.zoomOut();
ist zu langsam und webView.setInitialScale(..);
nichts.
Ich bin auf der Suche nach so etwas wie webView.setZoomLevel(..);
oder webView.setScale(..);
aber ich kann ihn nicht finden in der api.
Herausziehen meine Haare dazu.. Bitte helfen.
BTW, meine meta-viewport-Einstellung ist
<meta name="viewport" content="width=640,height=device-height,target-densityDpi=device-dpi" />
- stackoverflow.com/questions/3796176/...
- Diese Antwort gilt hier nicht. Es wird über text-Größe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Keine Antwort für diese Frage. Ich denke, es gibt einfach keine Möglichkeit, die zoom-Stufe, andere als Auszoomen mit der
zoomOut()
Funktion. Also musste ich damit Leben.Nicht eine der Antworten in dieser Frage helfen?
Wie, um die anfängliche zoom/Breite für einen webview
Brian zuerst vorgeschlagen: webview.getSettings().setUseWideViewPort(true);
und dann littleFluffyKitty Hinzugefügt: mit setInitialScale(50) zusammen mit anderen zoom-Einstellungen.
Glück und ich hoffe, jemand mit mehr Weisheit, als ich Ihnen eine bessere Antwort.