2011-06-03 24 views
6

Soruma göre, bir animasyondaki bir öğenin animasyonunu yapmak mümkün müdür. Özellikle, olduğunu varsayalım:Android, bir animasyon-canlandırma listesini animasyonluyor

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true"> 
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" /> 
    <item android:drawable="@drawable/rocket_thrust2" android:duration="200" /> 
    <item android:drawable="@drawable/rocket_thrust3" android:duration="200" /> 
</animation-list> 

Her <item> ait alfa solmaya yerine basitçe sonraki bir görüntüden atlamak istiyorum, bu mümkün mü?

cevap

3

Bunu yapmak için arası doldurulmuş animasyonlar kullanmanız gerekir. Esasen yapmanız gereken şey, mevcut resim için bir tane olmak üzere iki adet ImageView nesnesine ve yeni görüntü için bir tane olmalıdır. res/anim/fadeout.xml için iki doldurulan animasyonlar oluşturun:

<?xml version="1.0" encoding="utf-8"?> 
<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromAlpha="1.0" 
    android:toAlpha="0.0" 
    android:startOffset="500" 
    android:duration="500" /> 

ve res/anim/fadein.xml:

:

<?xml version="1.0" encoding="utf-8"?> 
<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" 
    android:startOffset="500" 
    android:duration="500" /> 

Sonra görünümleri arasında geçiş yapmak için bir ImageSwitcher widget'ı kullanmak

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    LinearLayout ll = new LinearLayout(this); 
    ll.setOrientation(LinearLayout.VERTICAL); 
    setContentView(ll); 
    final ImageSwitcher is = new ImageSwitcher(this); 
    is.setOutAnimation(this, R.anim.fadeout); 
    is.setInAnimation(this, R.anim.fadein); 
    ImageView iv1 = new ImageView(this); 
    iv1.setImageResource(R.drawable.icon); 
    is.addView(iv1); 
    is.showNext(); 
    ll.addView(is); 

    Button b = new Button(this); 
    ll.addView(b); 

    b.setOnClickListener(new OnClickListener() 
    { 

     @Override 
     public void onClick(View v) 
     { 
      ImageView iv2 = new ImageView(MainActivity.this); 
      iv2.setImageResource(R.drawable.icon2); 
      is.addView(iv2); 
      is.showNext(); 
     } 
    }); 
} 

Doldurulmuş animasyonlar hakkında my blog ürününde bir dizi makale var.

+0

Aradığım şey bu mu? Uygulama verileri indirilirken bir açılış ekranını canlandırmaya çalışıyorum, bu yüzden sadece statik bir resmim yok. Animasyon en az 4 görüntü içerecek ve animasyon kendi başına gerçekleşecek - kullanıcı etkileşimi yok – tomislav2012

+0

Kodu basit tutmak için bir düğme kullandım. Görüntüyü periyodik olarak değiştirmek için bir ImageSwitcher'ı arka plan iş parçacığıyla kullanabilirsiniz. –

İlgili konular