मेरा सबसे अच्छा सुझाव BitmapDrawable को ClipDrawable के साथ लपेटना है।
क्लिपड्राउबल आपको किसी अन्य ड्रॉइंग के लिए क्लिपिंग को परिभाषित करने देता है, इसलिए पूरे ड्रॉइंग को खींचने के बजाय, इसका केवल एक हिस्सा खींचा जाएगा।
यह कैसे काम करेगा? आपकी छवि दृश्य एक ड्रॉबल प्रदर्शित कर सकता है - setImageDrawable()
के माध्यम से असाइन करने योग्य। स्वाभाविक रूप से, आप वहां अपनी छवि बिटमैप का बिटमैप ड्रायबल रखेंगे। यदि आप पहले अपने बिटमैप ड्रावेबल को क्लिपड्राउबल के साथ लपेटते हैं, और केवल तब छवि दृश्य को असाइन करते हैं, तो आपको ठीक होना चाहिए।
<ImageView
android:id="@+id/imageView1"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/clip_source" />
और इस clip_source
drawable है:
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:clipOrientation="vertical"
android:drawable="@drawable/your_own_drawable"
android:gravity="top" />
आप अपने ClipDrawable (clip_source
) पर समारोह setLevel()
फोन करके कतरन की राशि निर्धारित कर सकते हैं। 0 का स्तर का मतलब है कि छवि पूरी तरह से छिपी हुई है और 10000 का स्तर है कि छवि पूरी तरह से प्रकट हुई है। आप बीच में किसी भी int मान का उपयोग कर सकते हैं।
आपको कोड में स्तर सेट करना होगा, इसलिए आपके कोड को पहले क्लिपड्रायबल का संदर्भ प्राप्त करना चाहिए। आप अपने छवि दृश्य उदाहरण पर getDrawable()
चलाकर ऐसा कर सकते हैं। जब आपके क्लिपड्राउबल का संदर्भ हो, तो बस उस पर setLevel(5000)
चलाएं (या कोई अन्य नंबर 0-10000)।
ImageView img = (ImageView) findViewById(R.id.imageView1);
mImageDrawable = (ClipDrawable) img.getDrawable();
mImageDrawable.setLevel(5000);
http://stackoverflow.com/questions/14544327/make-image-appear-half-of-the-screen – Rohit