Android: imagen local en la vista web

Estoy intentando mostrar una imagen local en mi vista web:

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

Este código no muestra nada, en lugar de:

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

Éste funciona, pero necesito tener una página web compleja, no solo una imagen.

Algunas ideas ?

Cargue el archivo Html en Webview y coloque su imagen en la carpeta de activos y lea ese archivo de imagen usando Html.

  
Hello

Ahora cargue ese archivo HTML en Webview

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

También puedes probar

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

Una manera conveniente (a menudo olvidada) es usar imágenes incrustadas base64 en contenido HTML. Esto también funcionará en navegadores Webkit móviles (IOS, Android …).

El objective de este método es que puede incrustar imágenes en contenido HTML, en lugar de luchar con enlaces de imágenes desde la vista web al sistema de archivos restringido.

   xxxxx = base64 encoded string of images bytes 

Si desea proporcionar datos de imagen (base64 incrustados) del sistema de archivos, puede, por ejemplo:

1) En Android use ContentProvider, que proporcionará cadenas de imágenes con formato base64.

  

2) O puede preprocesar HTML con JSOUP o un analizador DOM similar (antes de configurarlo en la vista web) y ajustar el src de la imagen con la imagen codificada base64 adecuada.

Las desventajas de este método son los gastos generales incluidos en la conversión de la imagen a la cadena base64 y, por supuesto, en la obtención de datos HTML más grandes para la vista web.

Usa este método

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

folder.getAbsolutePath() puede ser "file:///android_asset" o simplemente "/"

Creo que falta un \ en tu código

  String data = "" + ""; 

enter image description here

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

el mejor enfoque para mí fue crear mi archivo .html con todos los textos e imágenes en MS Word, guardar el archivo como un archivo .html y copiar el archivo .html y la carpeta de adjuntos correspondiente en la carpeta de activos y dar la dirección de .html file in asset folder to webview.loadUrl() … Aquí está lo que necesita hacer …

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

La solución de Zain funcionó para mí. Olvidé agregar mi carpeta www con archivos HTML y otras subcarpetas de css e imágenes, etc.

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

..

La forma más simple y directa es crear un archivo html con un editor html como kompozer o lo que quieras.

Coloque su archivo html en la carpeta assets y llame a webView.loadUrl(filename) . La carpeta de activos también debe contener todas las imágenes a las que hace referencia en sus archivos html.

Corrija de antemano en el archivo html la ruta a sus imágenes de una manera que solo archive el nombre de archivo puro. El nombre de archivo que pase a loadUrl debe ir precedido de file:///android_asset/ .

Si la imagen o el archivo no se carga, verifique los nombres de los archivos en blanco , los guiones y otras cosas raras y cambie los nombres de los archivos.

Sé que la pregunta se responde correctamente, pero la voy a implementar de manera efectiva.

Paso-1 crea un archivo HTML en la carpeta de activos

ex: -imageLaod.html

Nota: Aquí en el archivo HTML implementamos FullScreen Image dando style = “width: 100%”

 < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    Load Image    

This image loaded from app asset folder.

companylogo

Paso 2: coloca tu imagen en la carpeta de activos. (por ejemplo: https://stackoverflow.com/questions/6127696/android-local-image-in-webview/yourimage.png)

El paso 3 pone el código siguiente en el archivo java.

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

y está hecho. puede ver la imagen a pantalla completa con la función Acercar / Alejar de WebView .

Espero eso ayude.