2012-08-26 17 views
12
alt

bir ImageView görüntülemek orada yukarıdan aşağı kademeli bir ImageView görüntülemek için bir yoldur, böyle nasılkademeli yukarıdan aşağı

bok animasyon için

enter image description here

üzgünüm.

+0

Sen 'ImageView' kendisi tarafından bu şekilde animasyon istiyorum? Veya kullanıcı bir şey yaptığında bunu yapmak ister misiniz? – Luksprog

+0

Farkın ne olduğundan emin değiliz ama kendi kendime söyleyebilirim – ibiza

cevap

19

Android animasyonlarına pek aşina değilim, ancak bir (küçük hackish) yol, görüntüyü ClipDrawable içine sarmak ve level değerini canlandırmaktır. Örneğin:

<ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/clip_source" /> 

clip_source bir çizilebilir öğesidir:

<?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" /> 

Ardından kodda şu şekilde yapılır:

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 bir Runnable nesnedir 210

ve doTheAnimation yöntemi:

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

İlginç! Bu durumda mHandler nedir? – ibiza

+0

@ibiza Bu 'Handler' örneğidir, Handler mHandler = new Handler(); '. – Luksprog

+0

Bu yöntemi çalıştırabiliyor gibi görünmüyor, her zaman tam görüntünün tamamını görüyorum – ibiza

İlgili konular