Android – image locale dans la vue Web

J’essaie d’afficher une image locale dans ma vue Web:

Ssortingng data = "" + ""; webview.loadData(data, "text/html", "UTF-8"); 

Ce code n’affiche rien, au lieu de:

  webview.loadUrl("file:///android_asset/large_image.jpg"); 

Celui-ci fonctionne, mais je dois avoir une page Web complexe, pas seulement une image.

Des idées ?

Chargez le fichier HTML dans Webview et placez votre image dans le dossier Asset et lisez ce fichier image en HTML.

  
Hello

Maintenant, chargez ce fichier HTML dans Webview

 webview.loadUrl("file:///android_asset/abc.html"); 

Vous pouvez aussi essayer

 Ssortingng data = "" + ""; webView.loadDataWithBaseURL("file:///android_asset/",data , "text/html", "utf-8",null); 

Un moyen pratique (souvent oublié) consiste à utiliser des images incorporées en base64 dans un contenu HTML. Cela fonctionnera également sur les navigateurs Webkit mobiles (IOS, Android ..).

Le point d’utilisation de cette méthode est que vous pouvez incorporer des images au contenu HTML, au lieu de vous battre avec des liens d’image de WebView vers un système de fichiers restreint.

   xxxxx = base64 encoded ssortingng of images bytes 

Si vous souhaitez fournir des données d’image (embarquées en base64) à partir du système de fichiers, vous pouvez par exemple:

1) Sous Android, utilisez ContentProvider – qui fournira des chaînes d’images au format base64.

  

2) Ou vous pouvez prétraiter le HTML avec JSOUP ou un parsingur DOM similaire (avant de le configurer en vue Web) et ajuster l’image src avec une image correctement encodée en base64.

Les inconvénients de cette méthode sont la surcharge inhérente à la conversion de l’image en chaîne base64 et, bien sûr, à la génération de données HTML plus volumineuses sur la vue Web.

Utilisez cette méthode.

 mview.loadDataWithBaseURL(folder.getAbsolutePath(), content, "text/html", "windows-1252", ""); 

folder.getAbsolutePath() peut être "file:///android_asset" ou simplement "/"

Je pense qu’il y a un \ manquant dans votre code

  Ssortingng data = "" + ""; 

entrer la description de l'image ici

  webView.loadDataWithBaseURL("file:///android_asset/", sourse, "text/html", "UTF-8", null); 

Pour moi, la meilleure approche consistait à créer mon fichier .html avec tous les textes et images de MS Word, et à enregistrer le fichier sous forme de fichier .html et à copier le fichier .html et le dossier de pièces jointes correspondant dans le dossier assets. Fichier .html dans le dossier de webview.loadUrl() à webview.loadUrl() … Voici ce que vous devez faire …

 WebView webview = (WebView) findViewById(R.id.webView1); webview.loadUrl("file:///android_asset/learning1/learning1.htm"); 

La solution de Zain a fonctionné pour moi. J’ai oublié d’append mon dossier www ayant des fichiers HTML et d’autres sous-dossiers de css et d’images, etc.

 webView.loadDataWithBaseURL("file:///android_asset/www/",data , "text/html", "utf-8",null); 

..

Le moyen le plus simple et le plus simple consiste à créer un fichier HTML avec un éditeur HTML tel que kompozer ou ce que vous voulez.

Placez votre fichier HTML dans le dossier des ressources et appelez webView.loadUrl(filename) . Le dossier assets doit également contenir toutes les images que vous référencez dans vos fichiers HTML.

Corrigez à l’avance dans le fichier html le chemin d’access à vos images de telle sorte que vous ne remplissiez que le nom de fichier pur. Le nom du fichier que vous transmettez à loadUrl doit être précédé du file:///android_asset/ .

Si l’image ou le fichier ne se charge pas, vérifiez les noms de fichiers pour les blancs , les traits d’ union et autres éléments étranges et changez les noms de fichiers.

Je sais que la réponse à la question est correcte, mais je vais mettre en œuvre de manière efficace.

Étape 1: créez un fichier HTML dans le dossier de ressources

ex: -imageLaod.html

Note: Ici, dans le fichier HTML, nous avons implémenté FullScreen Image en donnant style = “width: 100%”

     Load Image    

This image loaded from app asset folder.

companylogo

Étape 2, placez votre image dans le dossier des ressources. (ex: https://stackoverflow.com/questions/6127696/android-local-image-in-webview/yourimage.png)

Étape 3: mettez le code ci-dessous dans le fichier java.

  Ssortingng folderPath = "file:android_asset/"; Ssortingng fileName = "loadImage.html"; Ssortingng file = folderPath + fileName; WebView webView = findViewById(R.id.webview) webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setDisplayZoomControls(false); webView.loadUrl(file); 

et c’est fait. Vous pouvez voir l’ image en plein écran avec la fonction de zoom avant / arrière de WebView .

J’espère que cela aide.