Je voudrais quelque chose:
s="
<body>
<img src='"+R.drawable.picture+"'>
</body>";
Comment puis-je faire ceci?
Vous ne pouvez le faire si notre image se trouve dans votre dossier /assets
. En outre, vous devez charger votre code HTML avec un objet baseUrl se trouvant dans votre dossier d’actifs.
Vous pouvez utiliser WebView.loadUrl()
ou WebView.loadDataWithBaseURL()
:
webView.loadUrl ("fichier: ///Android_asset/file.html");
ou
webView.loadDataWithBaseURL("file:///Android_asset/", "<img src='file.jpg' />", "text/html", "utf-8", null);
(file.jpg devrait être dans votre dossier assets)
Après quelques expériences, j'ai constaté que le code HTML suivant fonctionnait sous Android 2.3.1 (mais pas avec les versions antérieures):
<img src="file:///Android_res/drawable/example.png"/>
La partie vraiment intéressante est que le fichier image se trouvait réellement dans le répertoire drawable-hdpi
mais le gestionnaire de ressources fournit l'image dans le répertoire standard drawable
.
Essaye ça:
web_object.loadDataWithBaseURL("file:///Android_res/drawable/", "<img src='test.jpg' />", "text/html", "utf-8", null);
pas besoin de créer un fichier HTML séparé
Définir la largeur de l'image à 100%.
wv.loadDataWithBaseURL("file:///Android_res/drawable/", "<img src='"+ url + "' style='width:100%' />", "text/html", "utf-8", null);
wv.getSettings().setBuiltInZoomControls(true);
wv.getSettings().setDisplayZoomControls(false);