Pregunta

Estoy buscando en una biblioteca ImageViewer que abre una imagen en mi aplicación para un URI determinado (la imagen obtenida por un servicio web ya está almacenada dentro de mi aplicación en un lugar seguro). Realmente me gusta la actividad ImageViewer de "Samsung Galaxy" porque usa Pinch-Zoom y "desplazándose" vertical/horizontal. También escala la imagen muy rápido en mi teléfono Samsung :)

Sé que puedo abrir una imagen con una intención como esta:

Intent i = new Intent(Intent.ACTION_VIEW);  
i.setDataAndType(uri, "image/*");
startActivity(i);

Se llama al mejor espectador adecuado, cuando no se encuentra ninguna actividad, no se plantea una explicación. ¡Eso es genial!

Pero el problema es que no se me permite abrir una imagen con una intención externa (para fines de seguridad). es decir: el usuario no debe tener la posibilidad de guardar la imagen abierta a través de una opción de menú a su tarjeta SD externa o enviar esta imagen a otro servicio (correo electrónico/Twitter más o menos). Por lo tanto, tengo que escribir mi propia imagen IMAGEVIEWER (Actividad) que solo puede llamarse dentro de mi aplicación ... Desafortunadamente, no soy muy hábil transformando imágenes, entonces ¿hay algún proyecto de código abierto (o biblioteca) que cubra este caso de uso?

Ya le pregunté a Google y encontré este http://code.google.com/p/android-pinch/ Pero no funcionó muy bien (tampoco tiene funcionalidad de desplazamiento).

Gracias por tus consejos :)

¿Fue útil?

Solución

La forma más fácil de manejar imágenes es usar un WebView, si la imagen se almacena local o en algún lugar en línea. WebView admite Pinch a Zoom y otras funciones.

Ejemplo Java:

String imageUrl = "file:///local/dir/image.jpg"; // http://example.com/image.jpg
WebView wv = (WebView) findViewById(R.id.yourwebview);
wv.getSettings().setBuiltInZoomControls(true);
wv.loadUrl(imageUrl);

Fuente XML:

<WebView android:id="@+id/yourwebview"
         android:layout_width="match_parent"
         android:layout_height="match_parent" />

Otros consejos

En este momento yo también uso WebView. Pero esto es conceptualmente incorrecto, WebView no es para mostrar imágenes, para mostrar contenido web. WebView es voluminoso y engorroso. Restringiste la personalización. Por ejemplo, necesito escala, pero no quiero ver los controles de zoom, o quiero moverlos en otro lugar que por defecto.

Por lo tanto, busqué este problema y encontré algunas soluciones:

ACTUALIZAR

Chris Banes fue creado una biblioteca increíble que admite gestos para zoom en las imágenes, ver el primer punto arriba

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top