2011-12-16 19 views
8

साथ मैं ImageViews द्वारा किए गए एक ViewPager इस तरह लागू किया है:एंड्रॉयड ViewPager zoomable 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 zoomable हो सकता है (और छवि स्वाइप) या zoomable पिंच?

उत्तर

6

यह संभव है, मैंने यह कैसे किया है।

मेरा शीर्ष स्तर लेआउट तत्व FrameLayout है जो कई विचारों को एक दूसरे के शीर्ष पर ढेर करने की अनुमति देता है। FrameLayout में दो बच्चे हैं: ViewPager और ImageView कि मैं ज़ूम-इन तस्वीर दिखाने के लिए उपयोग करूंगा।

छवि दृश्य सामान्य रूप से छिपा हुआ है। मैं ViewPager के अंदर चित्रों पर स्पर्श घटनाओं को सुनता हूं और उन पर आधारित, ImageView दिखाएं और छिपाएं और पैन करें। यह काफी अच्छी तरह से काम करता है। यदि आवश्यकता हो तो मैं अधिक जानकारी दे सकता हूं।

+2

अधिक जानकारी वास्तव में सहायक होगी। –

+2

कृपया आप अधिक जानकारी साझा कर सकते हैं .. – arjoan

+0

अधिक जानकारी उपयोगी होगी – Piotr

2

मैंने माइक ऑर्टिज़ द्वारा TouchImageView क्लास का उपयोग किया। यह सही नहीं है। लेकिन यह अच्छा है क्योंकि आप इसे आसानी से छोड़ सकते हैं! डबल-टैप ज़ूम एनीमेशन मजाकिया हो सकता है। चुटकी ज़ूम को डबल-टैप्स के माध्यम से ट्रिगर किया जा सकता है जो अजीब है।

यदि आप इसे सीधे ViewPager (एडाप्टर क्लास के माध्यम से) में छोड़ देते हैं तो यह वास्तव में अच्छा काम करता है। जब आप ज़ूम करते हैं तो पृष्ठ को ट्रिगर किए बिना बाएं और दाएं स्थानांतरित कर सकते हैं जब तक आप किनारे पर सही हैं, जो वास्तव में अच्छा है!

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

+0

TouchImageView क्लास वास्तव में एक जीवन बचतकर्ता है! –