android - एंड्रॉइड में छवि दृश्य के लिए ज़ूम प्रभाव को कैसे कार्यान्वित करें?




image zooming (6)

आप किसी संबंधित प्रश्न में उत्तर की जांच कर सकते हैं। https://stackoverflow.com/a/16894324/1465756

बस लाइब्रेरी आयात https://github.com/jasonpolites/gesture-imageview

अपनी परियोजना में और अपनी लेआउट फ़ाइल में निम्नलिखित जोड़ें:

<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:gesture-image="http://schemas.polites.com/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">

<com.polites.android.GestureImageView
   android:id="@+id/image"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:src="@drawable/image"
   gesture-image:min-scale="0.1"
   gesture-image:max-scale="10.0"
   gesture-image:strict="false"/>`

मुझे छवि ज़ूमिंग को कार्यान्वित करना है, मैंने कई कोडों के साथ प्रयास किया है। लेकिन मुझे इशारा घटनाओं का पूरा विचार नहीं मिला। जब हम डबल टैप लागू करते हैं, तो मैं कार्यान्वित करना चाहता हूं, छवि टच प्लेस (इवेंट एक्स और वाई) के अनुसार ज़ूम कर रही है। मुझे इस समय केवल पैन को ज़ूम करना होगा। क्या कोई शरीर मुझे सुझाव दे सकता है?

संपादित करें: असल में मैंने छवियों के साथ उस दृश्यफलक को लागू किया है, अगर मैं पैन और ज़ूम प्रभाव लागू करने का प्रयास करता हूं, तो कभी-कभी छवियां बदली जाएंगी। मैं ज़ूम प्रभाव को कार्यान्वित करना चाहता हूं जहां उपयोगकर्ता क्लिक किया गया है

मुझे इसके बारे में कुछ विचार दो ....


आलसी आदमी इस lib का उपयोग कर सकते हैं, बस अपनी परियोजना के अंदर आयात करें और

ImageView mImageView;
PhotoViewAttacher mAttacher;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Any implementation of ImageView can be used!
    mImageView = (ImageView) findViewById(R.id.iv_photo);

    // Set the Drawable displayed
    Drawable bitmap = getResources().getDrawable(R.drawable.wallpaper);
    mImageView.setImageDrawable(bitmap);

    // Attach a PhotoViewAttacher, which takes care of all of the zooming functionality.
    mAttacher = new PhotoViewAttacher(mImageView);
}


// If you later call mImageView.setImageDrawable/setImageBitmap/setImageResource/etc then you just need to call
mAttacher.update();

मुझे आशा है कि आप अच्छी तरह से कर रहे हैं। अक्सर जब आप अपने ऐप में नई कार्यक्षमता जोड़ना चाहते हैं तो अक्सर होता है तो आम तौर पर वे सभी पुस्तकालयों की खोज करते हैं जो अच्छी रणनीति नहीं हैं क्योंकि आप नहीं जानते कि उस libabry में किस प्रकार का कोड है। इसलिए मैं हमेशा पुस्तकालयों को फोर्क करना पसंद करता हूं और अपने आवेदन कोड में उपयोगी कक्षाएं और विधियों को जोड़ता हूं।

इसलिए जब मैं एक ही मुद्दे से फंस गया, तो मैं बहुत सारे आर एंड डी बना देता हूं, फिर मुझे एक कक्षा मिलती है जो ज़ूम इन, ज़ूमऑट और पिनइन और आउट करने की क्षमता देता है। तो आप here. उस वर्ग को देख सकते हैं here.

इसलिए जैसा कि मैंने पहले बताया था, यह एक एकल वर्ग है। इसलिए आप इस वर्ग को अपनी परियोजनाओं में कहीं भी utils फ़ोल्डर जैसे डाल सकते हैं। और नीचे अपनी एक्सएमएल फाइलों में लाइनें डालें जैसे:

<your_packege_name.TouchImageView
        android:id="@+id/frag_imageview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitCenter"
        android:src="@drawable/default_flag"
        android:transitionName="@string/transition_name_phone" /> 

और आप अपनी सम्मानित गतिविधि में उस छवि दृश्य को पा सकते हैं, जैसा कि आपने सभी विचारों के लिए किया था: -

TouchImageView tv=(TouchImageView)findViewById(R.id.frag_imageview); 
tv.setImageResource(R.drawable.ic_play);

यह TouchImageView । हमारे कोड का आनंद लें :)


मैंने लाइब्रेरी davemorrissey/subsampling-scale-image-view फोटोव्यू (स्टार 18 बिट का जवाब) पर लाइब्रेरी davemorrissey/subsampling-scale-image-view को पसंद किया

  • दोनों सक्रिय परियोजनाएं हैं (दोनों में 2015 में कुछ काम करता है)
  • दोनों प्लेस्टोर पर डेमो है
  • subampling-scale-image-view उप नमूनाकरण के कारण स्मृति अपवाद के बिना बड़ी छवियों (1080p से ऊपर) का समर्थन करता है , जो PhotoView समर्थन नहीं करता है
  • subsampling-scale-image-view में बड़ी एपीआई और बेहतर प्रलेखन लगता है

यदि आप ग्रहण / एडीटी के साथ subsampling-scale-image-view का उपयोग करना चाहते हैं, तो AAR से JAR को कैसे परिवर्तित करें देखें


यहां सबसे कुशल तरीका है, यह आसानी से काम करता है:

https://github.com/MikeOrtiz/TouchImageView

अपनी परियोजना में TouchImageView.java रखें। इसके बाद ImageView के समान उपयोग किया जा सकता है।

उदाहरण:

TouchImageView img = (TouchImageView) findViewById(R.id.img);

यदि आप xml में TouchImageView का उपयोग कर रहे हैं, तो आपको पूर्ण पैकेज नाम प्रदान करना होगा, क्योंकि यह एक कस्टम दृश्य है।

उदाहरण:

    <com.example.touch.TouchImageView
            android:id="@+id/img”
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

बहुत आसान तरीका (परीक्षण): -

PhotoViewAttacher pAttacher;
pAttacher = new PhotoViewAttacher(Your_Image_View);
pAttacher.update();

Build.gradle में बोले लाइन जोड़ें: -

compile 'com.commit451:PhotoView:1.2.4'




zooming