Domanda

Sto cercando una libreria ImageViewer che apre un'immagine nella mia applicazione per un determinato URI (l'immagine recuperata da un servizio Web è già archiviata all'interno della mia applicazione in un luogo protetto). Mi piace molto l'attività di "Samsung Galaxy S" ImageViewer perché utilizza lo zoom e il verticale "per lo scorrimento". Inoltre ridimensiona l'immagine molto velocemente sul mio telefono Samsung :)

So che posso aprire un'immagine con un intento come questo:

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

Lo spettatore più adatto viene chiamato, quando nessuno viene trovato un'attivitàNotFoundException. Quindi è bello!

Ma il problema è che non mi è permesso aprire un'immagine con un intento esterno (per scopi di sicurezza). IE: l'utente non dovrebbe avere la posibilità per salvare l'immagine aperta tramite un'opzione di menu alla sua scheda SD esterna o inviare questa immagine a un altro servizio (e-mail/Twitter circa). Quindi devo scrivere la mia Classe ImageViewer (attività) che può essere chiamata solo all'interno della mia applicazione ... Purtroppo non sono molto abile a trasformare immagini, quindi c'è qualche progetto (o libreria) open source che copre questo caso d'uso?

Ho già chiesto a Google e ho trovato questo http://code.google.com/p/android-pinch/ Ma non ha funzionato molto bene (inoltre non ha funzionalità di scorrimento).

Grazie per i tuoi consigli :)

È stato utile?

Soluzione

Il modo più semplice per gestire le immagini è usare un WebView, se l'immagine è memorizzata locale o da qualche parte online. WebView supporta il pizzico di zoom e altre funzioni.

Esempio 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);

Fonte XML:

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

Altri suggerimenti

In questo momento sto anche uso WebView. Ma questo è concettualmente sbagliato, WebView non è per la visualizzazione di immagini, per la visualizzazione di contenuti Web. WebView è ingombrante e ingombrante. Ti sei limitato a personalizzarlo. Ad esempio, ho bisogno di ridimensionamento, ma non voglio vedere i controlli di zoom o voglio spostarli in un altro posto, quindi impostazione predefinita.

Pertanto, ho cercato su questo problema e ho trovato alcune soluzioni:

  • Fotoview Widget da Chris Banes
  • Inoltre, puoi guardare questo tutorial da Sony Ericsson (fonti disponibili) e implementare il tuo widget: parte 1, parte 2, Part3
  • E un'altra biblioteca ImageViewzoom a Github

AGGIORNARE

Chris Banes è stata creata una fantastica biblioteca che supporta i gesti per lo zoom delle immagini, vedi il primo punto sopra

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top