2010-11-30 7 views
5

私は単純なことをしようとしていますが、なぜ動作しないのか理解できません。
私がしようとしているのは、ImageViewに触れると、その上にアニメーションが表示されます。そのアニメーションが終了したときにのみ、新しいアクティビティが開始されます。
代わりに、新しいアクティビティがすぐに開始され、アニメーションが表示されません。アニメーションBEFOREアクティビティの変更

ここでアニメーションxmlです:それはあなたが、私はアニメーションのためloooong時間を入れてみましたご覧のよう

public void onCreate(Bundle savedInstanceState) 
{ 
    final ImageView ib = (ImageView)this.findViewById(R.id.photo); 
    ib.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) 
     { 
      Animation hang_fall = AnimationUtils.loadAnimation(Curriculum.this, R.anim.hang_fall); 
      v.startAnimation(hang_fall); 
      Intent i = new Intent(ThisActivity.this, NextActivity.class); 
      ThisActivity.this.startActivity(i); 
     }// end onClick 
    }); 
}// end onCreate 

、しかし:

<rotate android:interpolator="@android:anim/decelerate_interpolator" 
    android:fromDegrees="-45" 
    android:toDegrees="-10" 
    android:pivotX="90%" 
    android:pivotY="10%" 
    android:repeatCount="3" 
    android:fillAfter="false" 
    android:duration="10000" /> 

そして、これは私がそれを呼び出すために使用するコードです動作しません。 NextActivityがすぐに開始され、ThisActivityのアニメーションが終了するのを待機しません。
これはなぜ発生するのですか?

答えて

4

に与えられています。アニメーションが終了した後は、次のようにインテントを開始する必要があります。

@Override 
public void onClick(View v) 
{ 
    Animation hang_fall = AnimationUtils.loadAnimation(Curriculum.this, R.anim.hang_fall); 
    hang_fall.setAnimationListener(new Animation.AnimationListener() 
     { 
      public void onAnimationEnd(Animation animation) 
      { 
       Intent i = new Intent(ThisActivity.this, NextActivity.class); 
       ThisActivity.this.startActivity(i); 
      } 

      public void onAnimationRepeat(Animation animation) 
      { 
       // Do nothing! 
      } 

      public void onAnimationStart(Animation animation) 
      { 
       // Do nothing! 
      } 
     }); 
    v.startAnimation(hang_fall); 
}// end onClick 
+0

ありがとうございました!私は、この問題のいくつかについてもう少し詳細な文書があることを願っています。 :) – Stephan

+0

http://developer.android.com/reference/packages.htmlは、そこにある最高のリファレンスです。使用方法を知りたいクラスを検索するだけです。 – CaseyB

関連する問題