2011-12-16 64 views
8

我有這樣的實現由ImageViews做出了ViewPager:的Android ViewPager具有可縮放的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; 
    } 

任何機會,我可以通過雙擊該ImageView的可縮放(並刷圖像)或捏縮放?

回答

6

這是可能的,這是我是如何做到的。

我的頂層佈局元素是FrameLayout,它允許多個視圖堆疊在一起。 FrameLayout有兩個孩子:ViewPagerImageView,我將用它來顯示放大的圖片。

ImageView通常是隱藏的。我在ViewPager內部的圖片上偵聽觸摸事件,並基於這些事件顯示並隱藏並平移ImageView。它工作得很好。如果需要,我可以提供更多細節。

+2

更多細節確實會有所幫助。 – 2012-01-19 19:53:05

+2

請分享更多的細節.. – arjoan 2012-01-26 15:28:45

2

我使用了Mike Ortiz的TouchImageView類。這並不完美。但它很酷,因爲你可以非常輕鬆地放下它!雙擊縮放動畫可能很有趣。捏縮放可以通過雙擊來觸發,這很奇怪。

如果將其直接放入ViewPager(通過適配器類),它確實工作得很好。當放大時,您可以自由移動左側和右側,而不觸發頁面更改除非你是正確的邊緣,這真的很酷!

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