2011-02-03 21 views
14

Belirli bir URI için uygulamamdaki bir görüntüyü açan bir ImageViewer kitaplığı arıyorum (web servisinin getirdiği görüntü zaten güvenli bir yerde benim uygulamada saklanır). "Samsung Galaxy S" ImageViewer-Activity'i gerçekten çok beğendim çünkü tutam-zoom ve "scrolling" dikey/yatay kullanıyor. hiçbiri bulunduğunda en uygun görüntüleyici çağrıldığınıAndroid ImageViewer sınıfı, Pinch-Zoom ve Scrolling'i destekliyor

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

: Ayrıca ben böyle bir niyet ile bir görüntüyü açabilirsiniz biliyorum benim samsung telefondan :)

üzerinde çok hızlı resim ölçekler bir ActivityNotFoundException yükseltildi. Yani bu harika! Ancak sorun şu ki, dışsal bir imajla (güvenlik amacıyla) görüntü oluşturmama izin verilmiyor. i.e: Kullanıcı, açılmış görüntüyü harici sd kartına bir menü seçeneği ile kaydetme veya bu resmi başka bir servise göndermede (e-posta/twitter veya s.o.) bulunmamalıdır. Bu yüzden, sadece benim uygulamam içinde çağrılabilen kendi ImageViewer-Class'ımı (Aktivite) yazmam gerekiyor ... Maalesef, görüntüleri dönüştüren çok yetenekli değilim, bu yüzden bu kullanım durumunu kapsayan herhangi bir açık kaynak projesi (veya kitaplık) var mı? ?

Zaten Google'a sordum ve bunu bir http://code.google.com/p/android-pinch/ buldum, ancak çok iyi çalışmadı (ayrıca kaydırma işlevine sahip değil). senin ipuçları için

Teşekkür :)

+0

Soru yukarıdaki birinci noktaya bakın 2645648/bir-in-a-inşa-tutuş-çimdik-yakınlaştırma-fonksiyon-in-api-android- – cimnine

cevap

16

görüntüleri işlemek için görüntü yere çevrimiçi yerel depolanan veya edilirse, bir WebView kullanıyor en kolay yolu. WebView, yakınlaştırmak ve diğer işlevleri sıkıştırır.

Örnek 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); 

XML kaynak: Ben de WebView'ı kullanmak ediyorum Şu anda

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

İşte bu harika bir çözüm, teşekkürler! Olması gereken şekilde çalışıyor. Her ne kadar bir seçenek belirlemem gerekiyorsa wv.setInitialScale (100); 'Android'de bir görüntüyü görüntülemenin bu kadar kolay olduğuna sevindim;) Resim, iç db'de uygulamamdan mı saklanıyor? Ya da wv.getSettings() çağırmak zorunda mıyım? SetCacheMode (WebSettings.LOAD_NO_CACHE); '? –

+0

Önbellekte veya ilgili herhangi bir şeyde saklı olduğunu sanmıyorum. – Floern

19

. Ancak bu kavramsal olarak yanlıştır, WebView, web içeriğini görüntülemek için görüntüleri görüntülemek için değildir. WebView hantal ve hantaldır. Özelleştirmekle sınırlandın. Örneğin, ölçeklemeye ihtiyacım var, ancak yakınlaştırma denetimlerini görmek istemiyorum, yoksa bunları varsayılan olarak başka bir yere taşımak istiyorum. Eğer (mevcut kaynaklar), Sony Ericsson, bu öğretici bakabilirsiniz ve kendi uygulayabilir

  • Ayrıca Chris Banes dan

    http://stackoverflow.com/questions/:

    GÜNCELLEME

    Chris Banes resimleri uzaklaştırmaya yönelik hareketlerini desteklemesi müthiş kütüphane oluşturuldu, çimdik-to-zoom android içinde ilgili olduğunu

  • +0

    Evet, "ImageViewZoom" çalışır, ancak yalnızca API düzeyinde 8+. – gregn3

    +0

    ImageViewZoom, yakınlaştırmak için çimdiklemeyi desteklemiyor. Bu günlerde, kullanıcılar görüntülerin bir bölümünü yakınlaştırmak için parmaklarıyla kıstırmak istediklerinde işe yaramazlar. Chris Banes gelen – AndroidDev

    +1

    PhotoView Widget harika çalışıyor! –