2012-08-26 13 views
12

एक imageView प्रदर्शित करने के लिए कैसे वहाँ ऊपर से नीचे करने के लिए धीरे-धीरे एक imageView प्रदर्शित करने के लिए एक तरीका है, इस तरह:उत्तरोत्तर ऊपर से नीचे करने के लिए नीचे

भद्दा एनीमेशन के लिए

enter image description here

क्षमा करें।

+0

आप 'ImageView' अपने आप में उस तरह से चेतन करना चाहते हैं? या आप ऐसा करना चाहते हैं क्योंकि उपयोगकर्ता कुछ करता है? – Luksprog

+0

सुनिश्चित नहीं है कि अंतर क्या है लेकिन मैं खुद ही कहूंगा – ibiza

उत्तर

19

मैं एंड्रॉइड एनिमेशन से बहुत परिचित नहीं हूं, लेकिन एक (थोड़ा सा हैश) तरीका छवि को ClipDrawable में लपेटना है और level मान को एनिमेट करना है। उदाहरण के लिए:

<ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     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="bottom" /> 

तब कोड में आप होगा:

private Runnable animateImage = new Runnable() { 

     @Override 
     public void run() { 
      doTheAnimation(); 
     } 
    }; 
:

// a field in your class 
private int mLevel = 0; 

ImageView img = (ImageView) findViewById(R.id.imageView1); 
mImageDrawable = (ClipDrawable) img.getDrawable(); 
mImageDrawable.setLevel(0); 
mHandler.post(animateImage); 

animateImage एक Runnable वस्तु है 210

और doTheAnimation विधि:

private void doTheAnimation() { 
    mLevel += 1000; 
    mImageDrawable.setLevel(mLevel); 
    if (mLevel <= 10000) { 
     mHandler.postDelayed(animateImage, 50); 
    } else { 
     mHandler.removeCallbacks(animateImage); 
    } 
} 
+0

दिलचस्प! उस मामले में mandler क्या है? – ibiza

+0

@ibiza यह एक 'हैंडलर' उदाहरण है, 'हैंडलर mHandler = नया हैंडलर(); '। – Luksprog

+0

मैं इस विधि को काम करने में सक्षम नहीं लग रहा हूं, मैं हमेशा पूर्ण छवि – ibiza

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