2010-05-31 16 views
7

Tengo algunas imágenes que cargué desde una fuente remota almacenada en variables de mapa de bits y quiero mostrarlas. Además de cambiar entre estas imágenes, el usuario también debería poder acercar y alejarlas. Mi primera idea fue pasarlos de alguna manera a través de un intento para la aplicación de galería integrada, pero esto no parece posible. Una solución que se sugiere en varios lugares es usar WebView, ya que admite el zoom y la panorámica. Mi pregunta es ¿cómo los datos de mi Bitmap entran en WebView? ¿Tengo que escribirlo primero en un archivo, que tendría que eliminar nuevamente más tarde, o hay una manera más fácil?Android: ¿la manera más fácil de hacer que un WebView muestre un mapa de bits?

¿O hay mejores formas de lograr mi objetivo principal, que muestra datos de mapa de bits como imágenes ampliables y panables?

Respuesta

0

Después de todo, no estaba satisfecho con WebView, así que terminé creando mi propia actividad de visualización de imágenes. Descripciones adicionales sobre cómo lo hice se pueden encontrar in this post on google groups.

4

Puede usar la vista web para ver su imagen de forma remota. No es necesario guardar más la imagen en un archivo. Aquí hay un fragmento de código de muestra.

myWebView.getSettings().setBuiltInZoomControls(true); //to get zoom functionalities 

String url = "http://....."; //url of your image 

String x= "<html><head><meta name=\"viewport\" content=\"width=device-width, minimum-scale=1.0\"/><style type=\"text/css\">html, body {margin: 0;padding: 0;} img {border: none;}</style><head><body style=\"background: black;\"><table><tr><td align=\"center\"><img src=\"" + url + "\" /></td></tr></table></body></html>"; 

myWebView.loadData(x, "text/html", "UTF-8"); 

Acerca del cambio de imágenes, solo puede cambiar el valor de la url y llamar de nuevo a loadData de la vista web.

+0

La razón por la que quiero pasar los datos de mapa de bits que ya he cargado es que de esta manera mi aplicación puede almacenar en caché la imagen (en mi caso en la base de datos) por lo que solo tendrá que cargarse una vez. –

+0

Hasta donde yo sé, webview ya tiene una función de almacenamiento en caché. Puede anular su comportamiento especificando su modo de caché. myWebView.getSettings(). SetCacheMode (modo); Puede consultar este enlace. http://developer.android.com/intl/de/reference/android/webkit/WebSettings.html Puede usar 'LOAD_CACHE_ELSE_NETWORK' como el modo en el que utiliza la memoria caché si el contenido está allí, incluso si está caducado, cargar desde la red. Otra forma es manejar manualmente el zoom, la panorámica y el almacenamiento en caché por usted mismo sin utilizar webview. Puede ver el código ViewImage.java en el paquete de la cámara del código fuente de Android. – capecrawler

Cuestiones relacionadas