Android: imagen local en la vista web

Estoy intentando mostrar una imagen local en mi webview:

String data = "<body>" + "<img src=\"file:///android_asset/large_image.png\"/></body>"; webview.loadData(data, "text/html", "UTF-8"); 

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

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

Este funciona, pero necesito tener página web compleja, no sólo una imagen.

Algunas ideas ?

Cargar archivo Html en Webview y poner su imagen en la carpeta de activos y leer ese archivo de imagen utilizando Html.

 <html> <table> <tr> <td> <img src="abc.gif" width="50px" alt="Hello"> </td> </tr> </table> </html> 

Ahora cargue ese archivo Html en Webview

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

También puedes probar

 String data = "<body>" + "<img src=\"large_image.png\"/></body>"; webView.loadDataWithBaseURL("file:///android_asset/",data , "text/html", "utf-8",null); 

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

Punto de usar este método es que puede incrustar imágenes en contenido HTML, en lugar de luchar con enlaces de imagen de webview a sistema de archivos restringido.

  <img src="data:image/jpg;base64,xxxxxxxxxxxxxxxxxxxxxxxxxxxx"/> xxxxx = base64 encoded string of images bytes 

Si desea proporcionar datos de imagen (base64 incorporados) desde el sistema de archivos, puede por ejemplo:

1) En Android use ContentProvider – que proporcionará cadenas de imagen con formato base64.

 <img src="content://.............."/> 

2) O puede preprocesar HTML con JSOUP o similar parser DOM (antes de configurarlo a webview) y ajustar la imagen src con una imagen correctamente codificada en base64.

Las desventajas de este método son los gastos generales incluidos en la conversión de la imagen a la cadena de base64 y por supuesto en proding mayores datos HTML a webview.

Utilice este método.

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

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

Creo que hay un \ falta en su código

  String data = "<body>" + "<img src=\\"file:///android_asset/large_image.png\"/></body>"; 

Introduzca aquí la descripción de la imagen

  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, y guardar el archivo como un archivo .html y copiar el archivo .html y la correspondiente carpeta adjuntos en la carpeta de activos y dar la dirección de .html en la carpeta de activos a webview.loadUrl()webview.loadUrl() es 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í. Me olvidé de añadir 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 sencilla y sencilla es crear un archivo html con un editor html como kompozer o lo que quieras.

Ponga 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 que está haciendo referencia en sus archivos html.

Corregir con antelación en el archivo html la ruta de acceso a sus imágenes de una manera, que sólo descifrar el nombre de archivo puro. El nombre de archivo que se pasa a loadUrl debe tener el prefijo file:///android_asset/ .

Si la imagen o el archivo no se carga, compruebe los nombres de archivo de espacios en blanco , guiones y otras cosas extrañas y cambie los nombres de archivo.

  • Personalizable con ImageView
  • Mostrar una imagen "Cargando ..." mientras carga el fondo de la imagen con Picasso
  • Cómo cargar una imagen en el servidor de análisis utilizando analizar api en android
  • ¿Cómo inserto una imagen en una actividad con android studio?
  • Guardar imagen de la cámara de Android en la carpeta personalizada
  • Guardar imagen en la galería
  • Android cambiar imagen botón de fondo
  • Cómo eliminar el espacio en blanco alrededor de una imagen en Android?
  • Android ImageReader obtener el formato NV21?
  • Reemplace los caracteres con Image en string y luego seleccione Textview
  • Widget de página de Viewpager más ancho de pantalla en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.