Ich habe ein Bild geladen mit WebView
aber wenn es maximal herausgezoomt ist, platziert sich das Bild in der linken oberen Ecke meines Geräts. Gibt es eine Möglichkeit, das Bild so zu laden, dass es in der Mitte angezeigt wird?
Zum Wohl!
Ich habe ein Bild geladen mit WebView
aber wenn es maximal herausgezoomt ist, platziert sich das Bild in der linken oberen Ecke meines Geräts. Gibt es eine Möglichkeit, das Bild so zu laden, dass es in der Mitte angezeigt wird?
Zum Wohl!
Ich hatte das gleiche Problem - die vertikale Zentrierung in der Webansicht. Diese Lösung funktioniert die meiste Zeit... vielleicht kann es Ihnen ein wenig helfen
int pheight = picture.getHeight();
int vheight = view.getHeight();
float ratio = (float) vheight / (float) pheight;
System.out.println("pheight: " + pheight + "px");
System.out.println("vheight: " + vheight + "px");
System.out.println("ratio: " + ratio + "px");
if (ratio > 0.5)
{
return;
}
int diff = pheight - vheight;
int diff2 = (int) ((diff * ratio) / 4);
if (pheight > vheight)
{
// scroll to middle of webview
currentPhotoWebview.scrollTo(0, diff2);
System.out.println("scrolling webview by " + diff2 + "px");
}
Ich weiß, dass diese Antwort ein wenig spät kommt, aber hier ist eine Option ohne Javascript:
können Sie WebView erweitern und die geschützten Methoden verwenden computeHorizontalScrollRange()
y computeVerticalScrollRange()
um eine Vorstellung von der maximalen Bildlaufreichweite zu erhalten und auf dieser Grundlage zu berechnen, wo Sie scrollTo
mit computeHorizontalScrollRange()/2 - getWidth()/2 and
Ähnliches gilt für die Vertikale: computeVerticalScrollRange()/2 - getHeight()/2
Mein einziger Ratschlag wäre, sicherzustellen, dass das Laden abgeschlossen ist, bevor Sie dies tun, ich habe nicht getestet, ob dies funktioniert, während die Dinge geladen werden, aber ich glaube nicht, dass es, wie die Webview noch nicht haben es ist Scroll-Bereich korrekt eingestellt (wie Inhalt noch geladen wird) würde
siehe: Android Webview : Scrollen erkennen woher ich viele meiner Informationen habe.
Für mich ist das Arbeit:
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "PICTURE FILE NAME";
File file = new File(path);
String html = "<style>img{height: 100%;max-width: 100%;}</style> <html><head></head><body><center><img src=\"" + imagePath + "\"></center></body></html>";
webView.getSettings().setDefaultZoom(ZoomDensity.FAR);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.loadDataWithBaseURL( "" , html, "text/html", "UTF-8", "");
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.