Ich verwende Android Print Framework, um den HTML-Inhalt des WebView als PDF zu speichern. Da WebView in Android-L einen neuen Ansatz zum Rendern des WebView-Inhalts bietet, wird empfohlen, vor dem Erstellen von Webansichten die Methode enableSlowWholeDocumentDraw() aufzurufen. Dadurch wird die Rendering-Optimierung deaktiviert, sodass WebView die gesamte HTML-Seite rendern kann.Zeichnen Sie WebView in ein Canvas in Android-L
Hier ist der Teil des Codes zum Zeichnen von WebView in einen Canvas.
PdfDocument.Page page = document.startPage(pageInfo);
mWebView.draw(page.getCanvas());
Ich versuchte WebView.enableSlowWholeDocumentDraw()
aus Anwendung, BaseActivity Aufruf und auch direkt vor und nach WebView in meinem Fragmente erstellen. Aber das hat nicht geholfen.
Ich habe versucht, die Hardware-Beschleunigung zu aktivieren/deaktivieren, indem ich den Layer-Typ als SOFTWARE und HARDWARE einstelle, aber das half auch nicht. Ich kann immer noch nicht den gesamten WebView zeichnen. Nur der sichtbare Teil wird in den Canvas gezeichnet.
Hat jemand dieses Verhalten bemerkt? Gibt es dafür eine Lösung oder ist das ein Bug?
EDIT
Es stellt sich heraus, dass es nicht über WebView.enableSlowWholeDocumentDraw()
ist und wir diskutieren noch über das Thema. Dies ist die Bug Report. Und hier ist die Sample App, um das Problem zu reproduzieren.
Wie ich in meiner Frage angedeutet habe, bin ich mir dieser Änderung in der bewusst neueste Android-Version, und ich habe diese statische "WebView.SensableWlowDocumentDraw()" -Methode von onCreate der Anwendung, vor setContentView in der Basis-Aktivität und direkt nach dem Aufblasen meiner Ansicht in Fragment aufgerufen. Es hat überhaupt keinen Effekt – osayilgan
Ich sehe, Entschuldigung dafür. Dann ist es wahrscheinlich eine Überprüfung wert, dass Ihr WebView tatsächlich eine große Größe hat, z. with [hierarchyviewer] (http://developer.android.com/tools/help/hierarchy-viewer.html) Sie können auch überprüfen, wie sich Ihre Anwendung auf KitKat verhält, wo immer das gesamte Dokument gerendert wurde. –
Ich habe es mit KitKat überprüft, es funktioniert wie erwartet. Also sollte die WebView-Größe auch in Ordnung sein. – osayilgan