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:
- Que muestra la imagen de sdcard con webview no funciona
- PageCurl (revista) con la imagen de la web
- Cómo hacer una imagen de la partición de Android a su PC
- Android: Cómo implementar el dibujo en la parte superior de la imagen
- Escala de imagen inconsistente en Android para android: scaleType = "fitCenter"
webview.loadUrl("file:///android_asset/large_image.jpg");
Este funciona, pero necesito tener página web compleja, no sólo una imagen.
Algunas ideas ?
- ¿Cómo descargar la imagen más rápido en android Volley / Picasso / Glide cualquier otro?
- Error Unparsed Aapt
- Android: Camera2 Malo argumento pasado al servicio de cámara
- Escala de mapa de bits a 80 por ciento
- Android - Cómo convertir la imagen de webview.capturePicture () a byte y de nuevo a bitmap
- Android tutorial de procesamiento de imágenes?
- Las imágenes se cargan más rápido en la vista web
- Comprimir imagen en android
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>";
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.
- Biblioteca de clientes API de REST para Android
- Recepción de paquetes de instalación y desinstalación de eventos