Générer bitmap à partir de code HTML dans Android
Comment pouvez-vous générer une image à partir de HTML dans Android?
Pouvez le WebView
être utilisé pour cela ou est-il une meilleure approche (comme peut-être à l'aide de la WebView
moteur de rendu directement)? Comment?
J'aimerais implémenter la méthode suivante...
public Bitmap toBitmap(Context context, String html, Rect rect);
...où html
est le code html pour le rendu et rect
est le cadre du bitmap.
Vous pourriez envisager d'ajouter un peu plus de cent mots expliquant que "générer des images dynamiques en HTML".
En un mot, je veux générer une image à partir de rendu HTML. J'ai enlevé "dynamique" et reformulé dans le cas où il a été source de confusion.
FWIW, voici ma tentative de solution: stackoverflow.com/a/41354684/6684508
En un mot, je veux générer une image à partir de rendu HTML. J'ai enlevé "dynamique" et reformulé dans le cas où il a été source de confusion.
FWIW, voici ma tentative de solution: stackoverflow.com/a/41354684/6684508
OriginalL'auteur hpique | 2011-01-08
Vous devez vous connecter pour publier un commentaire.
Une méthode synchrone qui génère une image à partir d'une chaîne HTML à l'aide d'une WebView, et peut être utilisé à l'intérieur d'une AsyncTask:
Il a quelques limitations, mais c'est un début.
OriginalL'auteur hpique
Vous pouvez utiliser la méthode de tirage pour le laisser dessiner dans une image de votre choix. J'ai fait un exemple, n'oubliez pas d'internet et externe des droits de stockage de votre manifeste:
C'est une vue, vous ne pouvez garder une instance comme un moteur de rendu. Vous devez définir la taille pour un rendu comme Laoyout params-vous comme: LayoutParams params = new LayoutParams(500,500); mWebView.setLayoutParams(params); mWebView.mise en page(0, 0, 500, 500);
Je viens de tester, il vous suffit de définir mWebView.mise en page(0, 0, 500, 500);
+1 pour le test. 🙂 Vais essayer et d'accepter la réponse si ça fonctionne.
Malheureusement cette solution ne fonctionne qu'à l'intérieur d'une activité. Savez-vous comment il pourrait être mis en œuvre dans un thread de travail?
OriginalL'auteur Phyrum Tea
Pourquoi ne pas utiliser la WebView méthode : capturePicture() qui renvoie une Image et est disponible depuis l'API de niveau 1 ?
Il renvoie une image de l'ensemble du document.
Vous pouvez ensuite recadrer le résultat avec votre rectangle et enregistrer l'image bitmap à partir de là.
capturePicture()
était dépréciée de l'API de niveau 19: developer.android.com/reference/android/webkit/...OriginalL'auteur Yahel
Cet exemple montre comment capturer webView dernière image (il attend jusqu'à ce que webview complète de rendu de l'image), c'est un exemple de convertir le code HTML de PNG en utilisant Android
Code D'Activité
Disposition
OriginalL'auteur Ahmad Albash