2011-03-07 11 views

उत्तर

79

पर Android डेवलपर ब्लॉग यह लेख इस विषय को शामिल किया गया बहुत अच्छी तरह से (GestureDetectors पर अनुभाग तक नीचे स्क्रॉल):

Making Sense of Multitouch

तुम सिर्फ पिंच-टू-जूम को लागू करना चाहते हैं, वहाँ केवल कोड की कुछ लाइनें आप की आवश्यकता होगी:

private ScaleGestureDetector mScaleDetector; 
private float mScaleFactor = 1.f; 

public MyCustomView(Context mContext){ 
    //... 
    //Your view code 
    //... 
    mScaleDetector = new ScaleGestureDetector(context, new ScaleListener()); 
} 

@Override 
public boolean onTouchEvent(MotionEvent ev) { 
    // Let the ScaleGestureDetector inspect all events. 
    mScaleDetector.onTouchEvent(ev); 
    return true; 
} 

@Override 
public void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 

    canvas.save(); 
    canvas.scale(mScaleFactor, mScaleFactor); 
    //... 
    //Your onDraw() code 
    //... 
    canvas.restore(); 
} 

private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener { 
    @Override 
    public boolean onScale(ScaleGestureDetector detector) { 
     mScaleFactor *= detector.getScaleFactor(); 

     // Don't let the object get too small or too large. 
     mScaleFactor = Math.max(0.1f, Math.min(mScaleFactor, 5.0f)); 

     invalidate(); 
     return true; 
    } 
} 

अन्य इशारों से निपटने लेकिन बजाय उनके क्रियान्वयन का उपयोग कर के साथ लेख सौदों के बाकी, आप ०१२३१८३६५९ उपयोग कर सकते हैंजैसे कि उपरोक्त कोड में ScaleGestureDetector का उपयोग किया जाता है।

+4

मैं इस के साथ किया हूँ, लेकिन मैं कैसे खींच सकते हैं या स्क्रॉल पैन यह बहुत अच्छी तरह से पोस्ट की लिंक से समझाया गया है के बारे में जूम दृश्य – sillyMistaker

+0

@sillyMistaker कर सकते हैं। यह एक टिप्पणी के लिए बहुत अधिक सामग्री है, लेकिन फिर भी यह बहुत आसान तर्क का पालन करता है। – TechNyquist

7

अपना दृश्य ZoomView के अंदर रखें।

कस्टम दृश्य यहां उपलब्ध https://github.com/Polidea/android-zoom-view यह आसान, मुफ़्त और बहुत मजेदार है!

+4

इसके साथ जाने के लिए कोई दस्तावेज? – Peter

+0

अच्छा उदाहरण है, लेकिन यह बहुत अमान्य कॉल का कारण बनता है। – DearDhruv

+1

दुर्भाग्य से यह परियोजना पिछले 6 महीनों से सक्रिय नहीं प्रतीत होती है। मैंने 15 दिन पहले एक स्पष्ट बग को ठीक करने के लिए एक पुल अनुरोध प्रस्तुत किया था, लेकिन मुझे कोई प्रतिक्रिया नहीं मिली। –

-2

उपयोग करें:

एंड्रॉयड का समर्थन करता है कि जूम करने, विभिन्न स्पर्श इशारों से के लिए imageView का क्रियान्वयन।

https://github.com/chrisbanes/PhotoView

+0

फोटोवोव केवल छवि दृश्य पर ठीक काम करता है, लेकिन दृश्य नहीं मिला, जिसे किसी अन्य वर्ग द्वारा बढ़ाया गया है। कृपया कस्टमव्यू के साथ कैसे काम करें। –

संबंधित मुद्दे