2011-12-16 23 views
8

sahip Android ViewPager:Böyle uygulanan ImageViews tarafından yapılan bir ViewPager var yakınlaştırılabilen ImageView

@Override 
    public Object instantiateItem(View collection, int position) { 
     ImageView iv = new ImageView(ctx); 
     if (pageList.size() > position) 
      iv.setImageBitmap(pageList.get(position)); 
     else 
      iv.setImageResource(R.drawable.loading); 

     iv.setOnTouchListener(this); 
     ((ViewPager) collection).addView(iv, 0); 
     System.out.println("POS: " + position); 
     return iv; 
    } 

i çift dokunun tarafından o ImageView Zoomable (ve görüntüyü tokatlamak) ya da yakınlaştırılabilen tutam olabilir Herhangi şans?

cevap

6

Mümkün, işte nasıl yaptım.

Üst düzey mizanpaj elemanım FrameLayout'dur ve bu da çeşitli görünümlerin birbirinin üzerine yığılmasına olanak tanır. FrameLayout'un iki çocuğu vardır: ViewPager ve yakınlaştırılmış resmi göstermek için kullanacağım bir ImageView.

ImageView normalde gizlidir. ViewPager içindeki resimlerle ilgili dokunma olaylarını dinliyorum ve bunlara dayanarak, ImageView'ı gösterip gizleyip pan. Oldukça iyi çalışıyor. Gerekirse daha fazla ayrıntı verebilirim.

+2

Daha fazla bilgi gerçekten yararlı olacaktır. –

+2

Lütfen daha fazla bilgi paylaşabilirsiniz .. – arjoan

+0

Daha fazla bilgi yararlı olurdu – Piotr

2

Mike Ortiz tarafından TouchImageView sınıfını kullandım. Mükemmel değil. Ama havalı çünkü kolayca bırakabilirsin! Çift dokunma zum animasyonu eğlenceli olabilir. Tutam zoom, garip olan çift musluklar aracılığıyla tetiklenebilir.

Doğrudan bir ViewPager'a (bir bağdaştırıcı sınıfı aracılığıyla) düşürdüğünüzde çok iyi çalışır. Yakınlaştırdığınızda,bir sayfa değişikliğini tetiklemeden sol ve sağa serbestçe hareket ederseniz, gerçekten doğrudur!

https://github.com/MikeOrtiz/TouchImageView/blob/master/src/com/ortiz/touch/TouchImageView.java

+0

TouchImageView sınıfı gerçekten bir hayat kurtarıcıdır! –

İlgili konular