WebView.draw () ne fonctionne pas correctement sur la dernière mise à jour de WebView System System Android

J'utilise actuellement WebView.draw() pour prendre une capture d'écran de l'ensemble du WebView et l'enregistrer dans un Bitmap (basé sur cette solution ). Cela a parfaitement fonctionné jusqu'à présent.

J'ai récemment testé cette fonctionnalité sur un Nexus 5 (notez que sur le Nexus 5, la WebView en question est plus grande que l'écran, de sorte que l'utilisateur peut défiler horizontalement et verticalement) en exécutant Lollipop 5.1 et la dernière mise à jour de Android System WebView ( Version 42.0.2311.137 au moment de l'écriture) lorsque j'ai remarqué que le bitmap généré était incorrect. Il avait les dimensions correctes, mais au lieu de montrer l'ensemble du WebView, il n'avait que la partie de la WebView qui était visible pour l'utilisateur lorsque la méthode était appelée.

  • Android 6.0 ouvert échoué: EACCES (Autorisation refusée)
  • Comment obtenir une liste des cadres clés (cadres de synchronisation) des horodatages d'un fichier vidéo dans Android?
  • Android: implantation de la barre de progression et "chargement ..." pour la liste sans fin comme Android Market
  • Erreur de synchronisation Gradle dans Android studio lors de l'importation projet
  • Identifiez le type de motif regex
  • Comment lire de l'audio par le haut-parleur même lorsque le casque est branché?
  • J'ai essayé de désinstaller toutes les mises à jour sur Android System WebView (ce qui le ramène à la version 39 (1743759-bras) et, avec la version d'usine, la fonctionnalité fonctionne bien. Donc, ce problème est dû à une mise à jour relativement récente du système Android WebView. Je n'ai pas pu trouver un journal de changement, donc je ne peux pas comprendre ce qui a changé et comment le réparer. Voici une explication visuelle rapide:

    Est-ce que quelqu'un d'autre a rencontré ce problème et trouvé une solution possible?

  • "LayoutManager est déjà attaché à une erreur RecyclerView"
  • Comment déclencher un clic ou envoyer un événement dans le partage de données dans d'autres applications sur Android?
  • Les éléments positionnés de manière comparable dans le divisé défilable div "retard" sur le défilement
  • Android: Centre une image
  • Android imeOptions = "actionDone" ne fonctionne pas
  • GridLayout s'effondre sur un petit écran
  • One Solution collect form web for “WebView.draw () ne fonctionne pas correctement sur la dernière mise à jour de WebView System System Android”

    Vous devez appeler WebView.enableSlowWholeDocumentDraw () avant de créer des WebViews. C'est-à-dire, si vous avez des WebViews dans votre mise en page, assurez-vous d'appeler cette méthode avant d' appeler setContentView() dans votre onCreate() .

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.